はじめに
Githubにpush
したが,開発を進めるにつれて,何らかの理由により一部のファイルをGithubで管理しないようにしたくなることが良くあります.(個人開発で,場当たり的に進めているのが悪いのですが……)
その度に検索して,自らの状況に当てはまる対処法を模索していたので,いい加減にメモ書き的な記事を書くことにしました.
状況
今回考える状況は次のとおりです.
- 追跡から除外したいファイルを
commit
してから,いくつか進んでいる - 追跡から除外したいファイルを
add
&commit
した履歴はpush
済み - 対象のファイルは削除しない
- (ファイルを追跡から除外したことを履歴に残しておきたい)
対処
以上の前提における操作手順を順に示していきます.
Step 1. .gitignore
の記述(作成)
.gitignore
ファイルを作成しておきます.これを忘れると,せっかく後の操作をしても再び追跡されてしまいます.
.gitignore
/path/to/tracked_file
Step 2. git rm
の実行
.gitignore
だけでは既に追跡されているファイルは除外されません.既に追跡されているファイルをその追跡から除外するためにgit rm
を実行します.
git_rm
~$ git rm --cached /path/to/tracked_file # 特定のファイルの追跡を除外
~$ git rm -r --cached /path/to/tracked_folder # 特定のフォルダの追跡を除外
--chached
を忘れると指定したファイルが物理的に削除されてしまいます.万が一,削除してしまってもgit branch
で一応戻せますが,注意して操作するようにしてください.
Step 3. git add
& git commit
& git push
これ以前の変更をリモートリポジトリに反映します.
git_add_commit
~$ git add .
~$ git commit -m "message"
~$ git push
最後に
大した操作では無いので,価値があるかどうかが怪しいですが,どなたかの助けになれば幸いです.