[Git] 最初のコミットを含めてrebase -iする方法

[Git] 最初のコミットを含めてrebase -iする方法

こんにちは。サービスグループの武田です。最初のコミットを含めてrebase -iしたい場合は、--rootオプションを付けましょう。
2021.06.22

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービスグループの武田です。

結論だけ知りたい方!--rootだけ覚えてください!

			
			
$ git rebase -i --root

		

Gitを使っているとコミットの分割や統合が簡単に行えます。開発時は雑にコミットしておいたものを、PR前に整理するという方も多いのではないでしょうか。

そんな折に大活躍するコマンドがrebase -iですね。これを利用することで、歴史改変が簡単に行えます。そういえばVivy -Fluorite Eye’s Song-がおもしろいですね。見ていない方はぜひ。アマプラでも見れます。

さてそんなrebase -iなのですが、最初のコミットを対象にする場合、追加のオプションが必要となります。簡単に確認してみましょう。

			
			
$ mkdir git_rebase_test && cd $_
$ git init
$ touch README.md
$ git add .
$ git commit -m 'init commit'

$ echo '# git rebase' > README.md
$ git add .
$ git commit -m '2nd commit'

		

2つのコミットを対象にrebaseしてみます。

			
			
$ git rebase -i @~2
fatal: invalid upstream '@~2'

		

不正な指定ということでエラーとなってしまいました。ちなみにgit rebase -i @~1だと次のようになり、意図したものにはなりません。

			
			
pick 3823264 2nd commit

# Rebase b194806..3823264 onto b194806 (1 command)

		

最初のコミットからrebaseするには、コミットハッシュなどの指定ではなく--rootオプションを指定します。試してみます。

			
			
$ git rebase -i --root

		

次のようなエディット画面が立ち上がります。

			
			
pick b194806 init commit
pick 3823264 2nd commit

# Rebase 3823264 onto ec23e56 (2 commands)

		

先ほどと異なり最初のコミットも含まれていますね。あとはいかようにもしてください。

さいごに

今期は東京リベンジャーズもタイムリープものですね。そちらもおもしろいですよ。

この記事をシェアする

FacebookHatena blogX

関連記事