リポジトリにあるファイルを無視する方法は?


93

すでにGitリポジトリにコミットされているファイル(config.php)がありますが、ローカルで無視します。つまり、そのファイルをリポジトリに残しておき、Gitに変更を強制的に無視させます。

ファイルを.gitignoreに入れましたが、まだ変更済みとマークされており、Gitは何かをコミットするたびに変更をコミットしようとしています。どのような考え、私は何が欠けているか間違っていますか?


.gitignore-fileを追加してください-そのようにすると、問題に関する問題が発生する可能性があります。
Lars

回答:


189

ファイルが.gitignoreにあるにもかかわらず、ステータスに引き続き表示される場合は、まだ追跡されていないことを確認してください。

git rm --cached config.php

ローカルで無視するだけの場合は、gitステータスで無視することもできます。

git update-index --assume-unchanged config.php

1
OKありがとう!自分のブランチを別のブランチとマージすると、このファイルで問題が発生する可能性がありますか?
prcaen 2011

1
@ Nimbus147:問題にはなりません。そのファイルの変更はすべて無視されます(つまり、追加/コミットされません)。
VonC、2011

SmartGitを使用する場合は、removeを使用してこれを行う必要があります。
Omid-RH、

1
update-index --assume-unchangedリモートブランチを強制する方法はありますか?ファイルをリポジトリに保持したいのですが、他の人が変更できず、ステージングできません。
p014k

1
@ p014k私が知っていることではありません。その種類のファイルについては、別の名前でバージョン管理し、コンテンツファイラードライバーを使用して、必要に応じて適切なファイル(プライベート)を自動的に生成します。たとえば、そのフィルタはステージではアクティブになりません。stackoverflow.com/a/54454356/6309とその関連リンクを参照してください。
VonC、

6

チェックインしたファイルを無視:

git update-index --assume-unchanged file

元に戻します

git update-index --no-assume-unchanged file

すべて元に戻す

git update-index --really-refresh 

参考になりました。1つのファイルを元に戻すことはできましたが、すべて元に戻すことはできませんでした。
Adem Tepe

4

ファイルがすでにリポジトリにあり、したがってインデックス/ステージング領域にある場合、.gitignoreを更新してもその状況は変わりません-コミットされ続けます。

インデックス/ステージング領域からファイルを削除するには、を使用しますgit rm <file>


ファイルがリポジトリにあるがまだステージングされていない場合はどうなりますか?* .logファイルを無視しようとしていますが、[変更]にまだ表示されます。すべて無視したいのですが、どうすればいいですか?
サンドラK

@SandraKは、最後のコミット時にリポジトリ内にそのファイルの古いバージョン(ファイルパス/名前)がすでに存在する場合、追跡されていると見なされstatusます。それらの変更について。* .logファイルを無視したい場合は、以前に追跡されたファイルと現在追跡されていないファイルの両方について、両方のファイルgit rm *.logと.gitignoreファイルを更新する必要があります。一部のログファイルが実際に重要かどうかを最初に確認してください...特別なログファイルは忘れがちです;-)
Philip Oakley

-3

ファイルが.gitignoreにリストされたら、変更することはできません。

したがって、1つのコミットでリストからファイルを削除し、次の変更をコミットし、3番目のコミットで無視リストにファイルを再度追加できます。

私が通常行うことは、ファイルを2つに分割することです。1つは許可され、もう1つは変更できます。2番目のファイルが存在する場合はそれを含め、開発者は無視されたファイルの構成をオプションで変更できます。


1
ファイルが.gitignoreにリストされたら、変更することはできません」-明確にできますか、どういう意味ですか?私が持っているたくさんのファイルを私の多くで.gitignoreSと私は常にこれらのファイルを変更しています!これは初めてです。誰かがファイルをに追加すると.gitignore変更できないと言っています。
trejder 2014年

1
彼は実際には間違っています。それらを変更できます。Gitはそれらをアップロードしないか、アップロードするオプションを提供します。
David
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.