あなたのファイルは良さそうです。各行の先頭に空白がないことを確認してください。.gitignore が正しく機能しない理由を見つけるのに 4 時間かかりました。その理由はもちろん、ファイルの先頭に垂直の空白行があったカット アンド ペーストの問題でした。
git commit -a
.gitignore ファイルが不要なものをすべて完全に消去することを確認する前に、注意する必要があります。各ファイルをまたはでマークする(またはワイルドカードを使用する)か、git add *.cpp *.h
または-私が好むように-進行中に.gitignoreを開発し、コミットするgit status
前に常に確認してください。
.gitignore が実際に機能することを再確認したい場合は、試してください
git ls-files --others -i --exclude-standard
これにより、現在無視しているすべてのファイルが一覧表示されます。
既に追加したファイルを消去するには (おそらく を使用git add .
して、最初に間違いを犯します =]) @VonCが言ったように実行できます。次のいずれかを実行します。
git rm <filename>
また
git rm --cached <filename>
意図せずに追加したすべてのファイルを消去する別のオプションは、リポジトリを完全に消去してから、すべてを再度追加することです。ステージング領域のすべてをクリアしたい場合は、実行できます
git --rm cached .
ただしgit add .
、リポジトリに本当に必要なファイルのみが git status にリストされていることを確認するまでは、実行しないでください。
git のもう 1 つの非常に便利な点は、ワイルドカードを使用する場合にファイルへのパスが必要ないことです。*.suo
無視されたファイルをリストして、すべての*.log
ファイルを削除したいことがわかった場合は、実行するだけです
git rm --cached *.suo *.log
git は、ツリー内のどこにあるかに関係なく、その署名に一致するリポジトリ内のすべてのファイルを見つけます。