Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

gitでaddしたファイルを非追跡にする方法。(あるいはディレクトリ構造を変更するイケてない方法)

やたら入り込んだ構造の成果物を、特に考えもなくフォルダごと"add"してしまいました。
が、毎度毎度ファイルパスを叩かないといけないので、非常に効率が悪い状況となってしまいました。
そこで今回は一度追跡対象にしてしまったファイルを一旦消し、別ディレクトリに保存するコマンドを試してみることにしました。

2012/11/14追記
トラックバックさせて頂いたサイトの管理人kanonji様から、git mvの情報を頂いたので記事を書きました。
ディレクトリ構造の変更ならこちらの方が断然得です。
gitでディレクトリ構成を変更したい場合 (git mv) - Bye bye Moore

"git rm"は追跡を中止するのみでデータそのものは削除しいようです。

$ cp ./info/src/cygwin ./src
$ git rm -r --cached ./info/src/cygwin/

そして、通常通りファイルを追加してやると……無事にディレクトリ構成変更完了です。

$ git add ./src/*

gitの中の人はとても頭がよいので、一連の動作を"renamed"として解釈してくれるようです。すごいですね。

$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       renamed:    info/src/cygwin/201207051312_388.txt -> src/201207051312_388.txt
# <!--以下略-->

参考元: