LoginSignup
10
10

More than 5 years have passed since last update.

遠い過去のコミットを取り消す方法(50秒で)

Last updated at Posted at 2015-07-05

やらかした(;´Д`)

プルリクエストを出してレビューしてもらったら

意味不明なコミットをプッシュしてしまっていた事が判明した経験ありませんか??

でも全然大丈夫

git マスター @sachin21 さん直伝の音速取り消し方法を記事化しておきます。

git初心者向けです

まず取り消したいコミットのハッシュ値を確認

 git log --oneline

って打つとわらわらコミットが出てくるのよ

3d62052 scopeを定義
6d10927 コメントを修正
72a4313 リファクタリング
24cfd5d コメント記入
76773f0 進捗を分けた

こんな感じに

今回は
6d10927 コメントを修正

を取り消す事にしましょう

このコミットのハッシュ値は

左側に書いてあった

6d10927 ですね

revert

筆者はrebaseっていうのを使ってやろうとしていたんですが、それは良くないらしい。
詳しくは
http://www.karakaram.com/git-rebase-i-usage#remove
リモートの共有リポジトリに push したコミットを rebase してはいけないの部分を見てね

こういうケースはrevertを使うんだそう

git revert ハッシュ値

でvimが立ち上がるので、その後

:wq って打ってenterで終了。

例で言うと

① git revert 6d10927
② :wq

最後

以上の2コマンドで
新しいコミット(コミットを取り消すコミット)が出来るので、あとはそれをプッシュするだけ

あらかんた〜〜ん

というわけでプッシュしたコミットを取り消す方法でした。

P.S

追記です。

どうやらこの方法は、
コミットを取り消すコミット
を作成するので、コミット数が増えるという点で美しくないみたいですね。

rebaseを使う人も全然いるみたいです。

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10