Gitコマンドを忘れてしまった時の見直し ~> その2
記載コマンドの種類一覧
checkout 変更を取り消したり、ブランチの切り替えを行う。
reset ステージへ上げた変更を取り消すコマンド
--amend 取扱注意のコマンド
変更をやり直したい時に使うコマンド
git checkout -- <ファイル名>
git checkout -- <ディレクトリ名>
git checkout -- .
# 現在いるディレクトリ以下の変更を全てを取り消す
”--”と付いてるのは、ブランチ名とファイル名が被ってしまった時に
gitがどっちを指しているのかが分かる様にするためにつけられている。
このコマンドで重要なのは、ステージにあげる前の変更に対して
変更を取り消しているということ
つまり、git addした後の取り消しはまた別のコマンドが必要
git reset HEAD <ファイル名>
git reset HEAD <ディレクトリ名>
git resetHEAD .
# 全部の変更を取り消す
指定した変更をステージから取り消すだけなので、
ワークツリーにあるファイルには影響を与えない
つまり自分のローカルの中身は変更がないので、
もし、こちらも変更をしたいのであれば
git checkoutをしないとワークツリーには反映されない
git commit --amend
# リモートリポジトリにpushしたコミットはやり直すと大変なことになる...
本当に注意しないといけないのはあくまでpushしたコミットは
決してやり直してはいけない
このコマンドの裏側で何を行っているのかというと、、、
ステージに上がっている変更を元にリポジトリの内容を
上書きするということをやっているため
最悪の場合は、マージができなくなる事もあるので
決してpushしたコミットに関して--amendコマンドは使わないこと
もし、コミットした内容を変更したい時は
新しくコミットして変更すること
ちなみに、git --amendコマンドの内容を確認する際は
git logなどを使う事が多いと思うが小ネタとして
git log -p -n 1
# この様に打つと直前のコミットの内容が見れる
logに入っている最中は
"j"を打つと下にスクロール、
"p"を打つと上に移動する。
抜けたい時は"q"を打てばいい