.gitフォルダーのあるフォルダーに.gitignoreファイルを作成しましたが、リポジトリの再スキャンを実行すると、無視しようとしているファイルが表示されます。
これはファイルの内容です。
# Ignored files
*.suo
*.user
bin
obj
*.pdb
*.cache
*_svn
*.svn
*.suo
*.user
*.build-res
TestResults
_ReSharper*
私は何が間違っているのですか?ファイルはどこにあると思われますか?
まだ表示されているファイルが現在コミットまたはステージングされていないことを確認する必要があります。
それらを削除した場合(git rm
またはgit rm --cached
)、それらをプライベートファイルとして追加すると、無視されます。
あなたのファイルはよさそうだ。各行の先頭に空白がないことを確認してください。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は、ツリー内のどこにいても、その署名に一致するリポジトリ内のすべてのファイルを検索します。
これを機能させるために複数の方法を試しましたが、最終的には非常に簡単でした。
最初に.gitignoreをコミットする必要があります!
また、TortoiseGIT-GitExコミットツールを使用する場合、無視されたファイルを編集するオプションがあります。
あなたはそれを正しく見つけています。 .gitignoreは、.gitフォルダーが配置されているのと同じフォルダーにある必要があります。内部のファイルも正しく見えます。ただし、上部にコメント行はありません。
これを見ると、無視ファイルをコミットするのを忘れていると思います。
--rmキャッシュソリューションはどれも私には機能しませんでした。ファイルはASCII/ANSIとしてエンコードする必要があります。行末も変更しましたが、それだけでは直りませんでした。これらの指示が含まれているURL(申し訳ありませんが、元のポスター!)が見つかりませんが、これは私にとってはうまくいきました:
Windowsのコマンドプロンプトまたはgitコマンドプロンプトのどちらか好きな方から、git statusを実行すると、.gitignore内のファイルが表示されないようにする必要があります。