web-dev-qa-db-ja.com

Git GUIでファイルを.ignoreするにはどうすればよいですか?

.gitフォルダーのあるフォルダーに.gitignoreファイルを作成しましたが、リポジトリの再スキャンを実行すると、無視しようとしているファイルが表示されます。

これはファイルの内容です。

# Ignored files
*.suo 
*.user 
bin 
obj 
*.pdb 
*.cache 
*_svn 
*.svn 
*.suo 
*.user 
*.build-res 
TestResults 
_ReSharper*

私は何が間違っているのですか?ファイルはどこにあると思われますか?

20
Darkmage

まだ表示されているファイルが現在コミットまたはステージングされていないことを確認する必要があります。

それらを削除した場合(git rmまたはgit rm --cached)、それらをプライベートファイルとして追加すると、無視されます。

13
VonC

あなたのファイルはよさそうだ。各行の先頭に空白がないことを確認してください。gitignoreが正しく機能しなかった理由を見つけるのに4時間かかりました。その理由はもちろん、ファイルの先頭に縦のスペース行があるカットアンドペーストの問題でした。

.gitignoreファイルが不要なものをすべて本当にクリーンアップすることを確認する前に、git commit -aに注意する必要があります。各ファイルにgit add *.cpp *.hのマークを付ける(またはワイルドカードを使用する)か、または-私が好むように-進行中に.gitignoreを開発し、コミットする前に常にgit statusで確認してください。

.gitignoreが実際に機能することを再確認する場合は、 try

git ls-files --others -i --exclude-standard

これにより、現在無視しているすべてのファイルが一覧表示されます。

すでに追加したファイルをクリーンアップするには(おそらくgit add .を使用して、最初に間違いを犯します=])、次のように実行できます @ VonC 言った:どちらかを実行する

git rm <filename>

または

git rm --cached <filename>

意図せずに追加したすべてのファイルをクリーンアップする別のオプションは、リポジトリを完全にクリーンアップしてから、すべてを再度追加することです。ステージング領域のすべてをクリアしたい場合は、 実行できます

git --rm cached .

ただし、git statusにリポジトリに本当に必要なファイルのみが表示されることを確認するまでは、git add .を実行しないでください。

Gitのもう1つの非常に便利な点は、ワイルドカードを使用するときにファイルへのパスを必要としないことです。無視したファイルを一覧表示し、すべての*.suoファイルと*.logファイルを削除する場合は、実行するだけです。

git rm --cached *.suo *.log

gitは、ツリー内のどこにいても、その署名に一致するリポジトリ内のすべてのファイルを検索します。

6
AzP

これを機能させるために複数の方法を試しましたが、最終的には非常に簡単でした。

最初に.gitignoreをコミットする必要があります!

また、TortoiseGIT-GitExコミットツールを使用する場合、無視されたファイルを編集するオプションがあります。

2
Dave

あなたはそれを正しく見つけています。 .gitignoreは、.gitフォルダーが配置されているのと同じフォルダーにある必要があります。内部のファイルも正しく見えます。ただし、上部にコメント行はありません。

1
Stewie Griffin

これを見ると、無視ファイルをコミットするのを忘れていると思います。

0
Zane

--rmキャッシュソリューションはどれも私には機能しませんでした。ファイルはASCII/ANSIとしてエンコードする必要があります。行末も変更しましたが、それだけでは直りませんでした。これらの指示が含まれているURL(申し訳ありませんが、元のポスター!)が見つかりませんが、これは私にとってはうまくいきました:

  1. Notepad ++をまだインストールしていない場合は、インストールします。 Textpadも機能するはずですが、私はNotepad ++を使用しています。
  2. Notepad ++で.gitignoreを開きます。
  3. [表示]をクリックします|記号を表示|すべての文字を表示します。おそらく、各行の終わりにCR LFが表示されます。
  4. 検索と置換(ctrl + h)を実行し、[拡張]がオンになっていることを確認します(左下隅)。\r\nを検索し、\ nに置き換えます。すべてのCR LFがLFだけに変更されます。
  5. 次に、[エンコード]、[エンコード]の順にクリックします。 ANSIでエンコードします。
  6. ファイルを保存して終了します。

Windowsのコマンドプロンプトまたはgitコマンドプロンプトのどちらか好きな方から、git statusを実行すると、.gitignore内のファイルが表示されないようにする必要があります。

0
Bob Ramsey