Hatena::ブログ(Diary)

mumoshu.log

2009-04-08

gitで不要なaddを取り消す方法 00:00

適当にgit add .とやっているとログやらdb/development.sqlite3やらがtreeに入ってしまって困る。

こういうときは、

git diff --cached

でcommitされようとしている内容を確認して、

不要なファイルを見つけたら、

git rm --cached <ファイル名>

git rm -r --cached <フォルダ名>

とやってtreeから削除する(ファイル自体はFS上に残る)

そしてgit commit。


すっきり。

追記と訂正2011/09/26

以下のコマンドの方が、間違いがなくて良いです。

git reset HEAD -- <ファイル名>

これは、直感的に言うと、現在のディレクトリの内容は変更せずに、git addやgit rmのような、gitへの変更通知だけを無かった事にするコマンドです。

実は、これgit statusで表示されるメッセージに書いてあります。

「取り消したい時はこうしてね」と・・・。

$ git status

# On branch master

# Changes to be committed:

# (use "git reset HEAD <file>..." to unstage)

#

# deleted: file

# modified: file2

# new file: file3

#