ナンノこっちゃよくわからないタイトルですが、たぶん分かる人にはわかってもらえると思います。
.gitignore が Git に無視 (ignore) されてしまう
Eclipse で Git を使う時、時々気を抜いていると起こるのですが、例えば target/
以下にあるファイルを不意にコミットしてしまっていて、target/
のフォルダを [Team] → [ignore] して、フォルダごとステージングされないようにしているにも関わらず、何度もインデックスに上がってしまうあの現象のことです。
例えば、target/
フォルダを ignore したとします。
すると、.gitignore
ファイルに次のようにフォルダが追加され、今後 Git がトラッキングしないようにできます。
# this is a comment
target/
ところが、このフォルダ以下のファイルを一度コミットしてしまったような場合、.gitignore
でそのフォルダが指定されていたとしても、git add
するたびに無視したはずのファイルが何度も亡霊のように出てきます。
キャッシュをクリアすることで解決
これは、一旦リポジトリにステージングさせたくないファイルを追加していると、.gitignore
ファイルに記載されても、リポジトリにキャッシュが残っているために結果、トラッキングされてしまうようです。
こんな場合は、次のようにします。
# まず最初に現在のワーキングツリーの内容をインデックスに追加してコミットします。
# でないと、それ以降の作業で変更が失われます。
git add .
git commit -m "initial commit"
git rm -r --cached .
git add .
git commint -m "fixed untracked files"
これで終わりです。
今回のように、トラッキングを解除したいファイルが一つの場合は、
git rm -r --cached target/
または、
git rm --cached target/XXX.class
のようにしてもOK。
0件のコメント