目次
![[Git] 最初のコミットを含めてrebase -iする方法](/image.pl?url=https%3a%2f%2fdevio2023-media.developers.io%2fwp-content%2fuploads%2f2019%2f08%2feyecatch_git.png&f=jpg&w=240)
[Git] 最初のコミットを含めてrebase -iする方法
こんにちは。サービスグループの武田です。最初のコミットを含めてrebase -iしたい場合は、--rootオプションを付けましょう。
こんにちは。サービスグループの武田です。
結論だけ知りたい方!--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 @~2fatal: 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 commitpick 3823264 2nd commit# Rebase 3823264 onto ec23e56 (2 commands)
先ほどと異なり最初のコミットも含まれていますね。あとはいかようにもしてください。
さいごに
今期は東京リベンジャーズもタイムリープものですね。そちらもおもしろいですよ。