【gitの修正や取消のいろいろ】
その都度、なにかあったら追記する方針
push 取り消し
-
git push
後に間違いに気づくことってありますよね。
git reset
※ Pull Request 作成後は、git reset
はやめておく。
- local の commit,add,ソースコードの変更は残して、pushのみ取り消す
$ git reset --soft HEAD^
- local の commit,add,ソースコードの全変更を取り消す。
$ git reset --hard HEAD^
- ※ 上記のコマンドは極力使わない方が良いが、もし使って間違ってしまったら、
git reflog
を使う。
# 操作履歴を見て、戻りたい地点の数字を確認
$ git reflog
# 戻りたい地点の数字を指定する(例は「1」)
$ git reset --hard HEAD@{1}
-
git reset
後、修正したものを pushするには「-f」オプションをつけて強制的にpushする必要がある。- 以前の commitとコンフリクトエラーになっているので。
$ git push -f origin HEAD
git revert
※ Pull Request 作成後は、git revert
するとよい。
- 変更を取り消すのではなく、打ち消す(不要な履歴が残る)
$ git revert HEAD
- 上記を実行すると、commmitを打ち消すcommitができるので、再度 pushする。
$ git push origin HEAD
commit message の修正
※ git push
する前に修正する。
- 「--amend」で上書く
$ git commit --amend
add 取り消し
git add
した変更を、全て一括で取り消す
$ git reset .
ファイルやディレクトリを指定して、取り消す
$ git reset <ファイル>
$ git reset </ディレクトリ/>
1番最初のgit add
を取り消す場合
$ git rm --cached <ファイル>
$ git rm --cached -r </ディレクトリ/>
※ --cached
を付け忘れると、間違ってまだどこのも保存していないファイル実体を削除してしまうことになる。
add の変更内容を確認
HEAD からインデックスの差分を確認
--cached
により、インデックスへの変更状況を確認
$ git diff --cached
branch削除
$ git push origin :<ブランチ名>
rebase
を中断
$ git rebase --abort