ファイルの追跡を停止したいのですが、それでもファイルを作業ツリーに保持します。
私はそれgit rm --cached FILE
をさせてくれるものを集めました。ただし、他の誰かがこの変更をプルした場合、そのローカルコピーは削除されますか?
はい、それらのコピーは自動的に削除されます。この削除が行われない場合を想像してみてください。そうすると、すべてのユーザーの作業コピーが、削除されたファイルの山で汚染され、不要になります。
pull
ただし、リモートユーザーがこれらのファイルにローカルの変更を加えた場合、マージの競合が発生するため、ファイルは削除されません。
Jefromiがコメントで示唆しているように、ファイルは他のユーザー側で削除されますが、簡単に復元できます。バージョン管理下にありますね。;-)ファイルは。によって取得される可能性がありますgit checkout <revision> -- <files...>
。リビジョンとして、前のコミットのIDを指定できます。プルの場合、それは保存されORIG_HEAD
ます(詳細についてはこの質問を参照してください)。
git checkout ORIG_HEAD -- removed_file
そのような場合、私はむしろそれらをローカルでのみ無視したいと思います:
それらがすでに追跡されている場合:
git update-index --skip-worktree FILE
追跡されていない場合:ローカルの除外ファイルに追加します
echo "FILE" >> .git/info/exclude
すべてのリポジトリに対して何かを行う場合は、グローバル.gitignoreを使用することもできます(例:*〜)