はじめに
gitは便利なコマンドも多くできることも多いです。
試しているとこれ便利だなーどこかで使いたいなーと思うものも多いですが、
実際の運用で考えた場合は頻繁ではないものの絶対に避けて通れないのが取り消し系のコマンドです。
ということで、add、commit、push、merge、pull request、merge pull requestの
をそれぞれ取り消すコマンドを後で自分でも見る用にまとめ
アジェンダ
git add
取り消しgit commit
取り消しgit push
取り消しgit merge
取り消しpull request
取り消しmerge pull request
取り消しgit tag
取り消し
ここに挙げるのは例で、それぞれの取り消しに対していくつか方法があるので
どういう取り消し方法が良いかはチームにあった形でみつけてください。
1. git add
取り消し
git reset
個別に取り消し
$ git reset HEAD [ファイルパス]
全部取り消し
$ git reset HEAD
参考
2. git commit
取り消し
git reset
2つ前のcommitを取り消し
$ git reset --soft HEAD~2
git commit --amend
1つ前のcommitを上書き
$ git commit --amend
git update-ref -d HEAD
最初のcommitを取り消し
$ git update-ref -d HEAD
参考
3. git push
取り消し
pushしてしまったものは共有環境への操作でもあるので
revertだと取り消したという履歴
も残せて良いですね。
git reset
2つ前のcommitを取り消して、強制的にpush
$ git reset --soft HEAD~2 $ git push -f
revert
revetで取り消してリモートにpush
$ git revert [コミットハッシュ] $ git push
参考
4. git merge
取り消し
git reset
直前のmergeを取り消し
$ git reset --hard HEAD^
参考
5. pull request
取り消し
git push --delete origin [ブランチ名]
pull requestを送ったブランチ名を指定して--delete
オプションつきでpush
$ git push --delete origin [ブランチ名]
参考
6. merge pull request
取り消し
git revert
-m 1
オプション + mergeコミットのハッシュ番号を指定してrevert
$ git revert -m 1 マージコミットハッシュ番号
参考
7. git tag
取り消し
git tag -d タグ
ローカルのタグを取り消し
$ git tag -d タグ
git push origin :refs/tags/タグ
リモートのタグを取り消し
$ git push origin :refs/tags/v1.0.6
参考
まとめ
今回挙げたコマンド以外にもrebaseで戻すなど、
運用方法によって違うこともあると思うのでそこらへんはチームにあわせてやってきましょうー!\(^o^)/
一応rebaseの参考も
→あのコミットをなかった事に。git rebase -i の使い方