0

数日前、.gitignore でも無視されるコミットされたファイルがあることに気付きました。これはサイトのメイン構成ファイルであり、私の開発コピーは何らかの形でコミットされていました。

ファイルを削除するために、.gitignore から行を削除し、問題のファイルを削除するコミットを作成しました。次に、.gitignore 行を追加する別のコミットを作成しました。

しかし今では、それらのコミットが誰かの環境に適用されるたびに、無視された構成ファイルが削除されます! これがもう起こらないようにレポを修正するにはどうすればよいですか?

4

1 に答える 1

0

あなたは本当にできません。現在の HEAD コミットがファイルを追跡し、それが含まれている場合、後続のコミットには含まれていない場合、Git はファイルを削除することでこの違いを適用します。これは履歴で起こったことだからです。ファイルを保存したい場合は、新しいバージョンをチェックアウトする前に一時的に名前を変更して、Git がファイルを削除しないようにするか、git checkout oldcommit -- config.file.

ファイルの役割は、.gitignoreリポジトリで何かが追加または削除されるのを防ぐことではありません。追跡されていないファイルを検出する Git のメカニズムに影響を与えるだけです。たとえば、無視された (しかし追跡されていない!) ファイルをgit status. ただし、リポジトリからファイルを明示的に追加または削除することを妨げるものではありません。

.gitignoreつまり、リポジトリからファイルを削除するために行を削除する必要はありませんでした。追跡を解除するために使用できgit rm --cached config.fileたはずです。ファイルを物理的に削除せず、gitignore に触れることもありません。

于 2013-01-27T16:15:25.333 に答える