4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

のび太:Githubの間違ったブランチにpushしちゃったよ~!

Posted at

のび太:助けてよドラえも~ん!

ドラえもん:どうしたんだいのび太くん

のび太:ローカルの変更をpushする前に,pushしたいブランチをチェックアウトするのを忘れててそのまま間違ったブランチにpushしちゃったんだよ~!

ドラえもん:やれやれまったく君はおっちょこちょいなんだから。
ドラえもん:そういう時はgit revertgit cherry-pickを使ってあげれば良いんだ。
ドラえもん:僕が横で見ててあげるからやってごらんよ。

のび太:どうやるの?


ドラえもん:まずはgit revertgit cherry-pickがそれぞれ何をするのか確認しておこう。この記事git revertがよく説明されているよ。

既存のコミットを取り消すためのコマンドです。
「取り消したいコミットを打ち消すようなコミットを新しく作成する」という処理によって、既存のコミットを取り消します。
出典:https://qiita.com/chihiro/items/2fa827d0eac98109e7ee

のび太:なるほど!直前のコミット履歴を消さずに新しく打ち消しコミットを作って直前のコミットを取り消すことができるのか!

ドラえもん:そう!吸収が速いじゃないかのび太くん,本当にのび太くんかい?


ドラえもん:それからこれgit cherry-pickの説明だよ!

他ブランチの特定コミットのみを反映されることができるコマンドです。(ママ)
出典:https://qiita.com/ta__ho/items/8204a22a53b02ee0817e

のび太:なるほど,これはそのまんまだね。
のび太:でもさドラえもん,「ちぇりーぴっく」って何?

ドラえもん:「ちぇりーぴっく」っていうのは日本語で「つまみ食い」って意味だよ。他のブランチから好きなコミットだけを「つまみ食い」して持ってくるからぴったりの名前だね。


のび太:git revertgit cherry-pickが何なのかは分かったよ

ドラえもん:それじゃあ間違ったブランチにpushしてしまったコミットを正しいブランチにpushし直していこうか。まずはgit revertから。

ドラえもん:その前に今いるブランチが間違ってpushしてしまったブランチかどうかを確認しよう。
のび太:うん。さっき間違ってpushしちゃったブランチにいるよ。

ドラえもん:よし,そしたらgit logで間違ってpushしたコミットの"コミットID"をコピペしよう。

のび太:よしよし...ねぇ,git logってどうやって終わるの?

ドラえもん:Qで終えられるよ。
そしてgit revert コミットIDからのgit push origin HEADだ!

ドラえもん:ここまででファイルの内容は間違いコミットの直前のコミットに戻っているはずだよ。

のび太:本当だ!オッケードラえもん,次は?

ドラえもん:そしたら,本来pushしたかったブランチをチェックアウトしよう。

ドラえもん:そして,git cherry-pick 間違いコミットのIDからのgit push origin HEADだ!

のび太:あ!本当だドラえもん,こっちにコミットしたかった内容がちゃんとpushできてるよ!

ドラえもん:おめでとうのび太くん!


...いかがでしたでしょうか。のび太ができすぎる気もしますがまとめると,

手順 やること・達成内容
1 今いるブランチが間違いコミットをしてしまったブランチかどうか確認
2 もし別ブランチにいた場合は1のブランチをチェックアウトする
3 git logで間違いコミットのコミットIDをコピペする
4 git revert 3のコミットIDしてgit push origin HEADする
5 間違いコミットの取り消しに成功!
6 本来pushしたかったブランチをチェックアウト
7 git cherry-pick 3のコミットID してgit push origin HEAD
8 本来のブランチにコミットをpushできた!

となります。今回自分がはまったことを記事にしておりますので,なかなか自分視点で分かりづらいところがあったかもしれません。間違いなどの指摘も大歓迎ですし,コメントなども頂けると嬉しいです。

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?