gitで間違えたadd/commit/pushを取り消す
編集内容を取り消すgit checout <filename>
addを取り消すgit reset --hard HEAD^:<filename>git reset [--hard] HEAD <filename>
オプションはcommitの取り消しと同じ。
ファイルを指定しなければaddしてあるファイルすべてを対象とする。
commitを取り消すgit reset [--soft | --hard] HEAD^
HEADは現在のリビジョンでHEAD^は一つ前のリビジョンを表す。
二つ前はHEAD^^と戻したいだけ^をつける。
--softオプションをつけると、ファイルをaddした状態まで戻す。デフォルトは--soft
--hardオプションをつけると、ファイルをHEAD^の(編集前)の状態まで戻す。
pushを取り消すgit push -f origin HEAD^:<branchname>
たまにpushした後にデバッグ用の処理を消し忘れてることに気づき取り消しを行っている
私の開発環境だけでなら問題ないが、共通環境にあがると面倒な上に、
私のpushを共通にmergeしてくれる管理者の人の仕事を増やすのはさけたいのでこの辺りを理解できればありがたいと思う
※今後理解が深まれば追記を増やす予定
同日18:50追記1
addの取り消しを修正、そもそもpushまでやってから間違いに気づいた場合のaddの取り消しだった模様。
まぁcommit前に気づいたなら修正してからまたaddすればいい話ですけど、最初の書き方は何か違う気がしたので…
やっぱり自分で実際にやらないとだめね
PR