最初のコミットの内容を変更したい
Gitで最初のコミットの内容を変更したいと思って git rebase -i <最初のコミット>
とやっても、最初のコミットは出てきません。
% git log --oneline 4f4f42c 二番目のコミット 9d4876c 最初のコミット % git rebase -i 9d4876c pick 4f4f42c 二番目のコミット
このような場合は git rebase -i --root
を指定すると良いようです。
% git rebase -i --root pick 9d4876c 最初のコミット pick 4f4f42c 二番目のコミット
最初のコミットの前に別のコミットを入れたい
さっきと同様に git rebase -i --root で開いて、最初のコミットを edit にします。
% git rebase -i --root edit 9d4876c 最初のコミット pick 4f4f42c 二番目のコミット
ここで何か変更して、git commit
後 git rebase --continue
すると、最初のコミットの次に入ります。
% git log --oneline 94d6512 二番目のコミット 1b424b1 何か変更 14ad5e8 最初のコミット
そしてもう一度 git rebase -i --root
で、コミットの順番を並び替えると、最初のコミットの前に移動できます。
% git log --oneline c6e0a13 二番目のコミット 71e774a 最初のコミット 828ea78 なにか
または親を持たないブランチを作成して、それに rebase するという方法もあります。
% git checkout --orphan hoge # 親を持たないブランチ % git reset # ファイルが stage 状態になってるので reset % git commit --allow-empty -m 'なにか' # 空コミット % git clean -fdx # master にあるファイルが残っているのでクリア % git checkout master % git rebase hoge # master を hoge から派生するように rebase % git log --oneline 5cc41ab 二番目のコミット b87ca1f 最初のコミット 0544410 なにか
ほかにもいい方法があるかもしれません。