最初のコミットをgit rebaseするにはどうすればよいですか?


127

以前git initは新しいリポジトリを作成していて、3回コミットしました。今、私は元に戻って最初のコミットを修正するためにリベースしたいのですが、そうするとgit rebase -i HEAD~3不平を言います!私が同じことを試してみるとHEAD~2、それはちょっとうまくいきますが、最後の2つのコミットのみを並べ替えることができます。

「コミットが発生する前のコミット」を参照したり、戻って空のコミットを挿入したりするにはどうすればよいですか?


回答:


214

最近の十分なgitを使用した簡単な方法(これは長い間出回っていたため、これを使用する必要があります):

git rebase -i --root

別の簡単な方法は、twalbergがコメント述べたように、を使用git checkout --orphanして新しいルートコミットを作成することです。これにより、古いコミットを上にコピーできます。(これはrebase -i --rootとにかく内部的に行うことになります。)


使用してgit rebase -i --root、私はエラーを取得するerror: cannot 'fixup' without a previous commit第二コミットスカッシュしようとしたときに(私は最初にしたい)
mikemaccana

指示シートに正確に何を編集していますか?コミットのリストがあり、一番古いものが一番上にありpick、それぞれのコマンドがあります。2つ目 picksquashまたはに変更fixupし、説明シートを書き、エディターを終了すると、Gitが処理を実行します。
torek
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.