私がよくやってしまう失敗、自分が次回から忘れないためにも、記録しておきたいと思う。
失敗1 git add .を.gitignoreファイルを作成する前に行なっていまう
なぜこれは、良くないのでしょうか?それは、無視して欲しいファイルやディレクトリを書いた.gitignoreをaddした後に足しても、.gitignore内に書かれているファイルはすでにインデックス化されていて、次のコミットに入ってしまっているから。
さて、場合によっては、git add .で足したファイルをインデックスから削除したくなるでしょう。
そのようなときは、次の失敗2を御覧ください。
教訓
gitのローカルレポジトリを作成して、それから、addする前にかならず.gitignoreは最初から作っておきましょう
失敗 2 フォルダ内のファイルすべてを追加して、追加する必要がないゴミがあることに気がつく
一番最初にgitレポジトリをローカルで作ってから、すべてのファイルを追加して。。。。あっ、余計なものまで追加してしまったと後悔すること。例えば画像ファイルとか。
例
クライアント側では要するに以下のような動作をしてしまう。
cd /programmingpapa/project_folder
git init
git add.
そして、余計な画像ファイルが入っていたとしよう。
調べてみると、追加してしまったファイルを取り除くためには
git resetを使えると見つけた。
なので、
git reset (取り除きたいファイル名)
とやってみると
fatal: Failed to resolve 'HEAD' as a valid ref.
というエラーが出てきた
その理由はというと、一度も未だコミットしていないからのようだ。
その場合は
git rm --cached (取り除きたいファイル名)
とすることで解決することができる
git statusと打って、ファイルがインデックスから取り除かれたことを確認しよう。
もしも、追加したすべてのファイルを取り除きたい場合は
(git add . の反対)以下のコマンドを試してみてください。
git rm -r --cached .
以下のstackoverflowの質疑応答は非常に役に立ちました。
http://stackoverflow.com/questions/348170/undo-git-add-before-commit
No comments:
Post a Comment