以前git init
は新しいリポジトリを作成してから、3 つのコミットを行いました。今、リベースして最初のコミットに戻って修正したいのですが、そうするとgit rebase -i HEAD~3
エラーが表示されます - fatal: invalid upstream 'HEAD~3'
!
同じことを試してみるとHEAD~2
、ある程度は機能しますが、最後の 2 つのコミットのみを並べ替えることができます。
「コミットが行われる前のコミット」を参照したり、戻って空のコミットを挿入するにはどうすればよいでしょうか?
エラーgit rebase -i HEAD~3
:
fatal: invalid upstream 'HEAD~3'
ベストアンサー1
簡単な方法は、最新の Git を使用することです (これはかなり前から公開されているので、すでに持っているはずです)。
git rebase -i --root
もう一つの簡単な方法は、トゥワルベルグコメントで指摘されていたが、その後削除されたが、現在はhttps://stackoverflow.com/a/68279810/1256452 の回答は、新しいルート コミットを作成するために設定するために使用されgit checkout --orphan
、その上に古いコミットをコピーできます。(これは、rebase -i --root
結局、内部的に行われることです。) 最初のコミットを分割するなどの目的では、この最初の空のコミットが役立ちます。
将来(2022 年)からの補足情報: 最初のコミットには、 のような定型ファイルをいくつかだけ含めるのが良い場合がよくありますREADME
。新しい空のリポジトリの最初のコミットは、常に少し特別です。Bitbucket、GitHub、GitLab などのホスティング サイトを使用する場合、リポジトリを作成すると、多くの場合、このような初期コミットが自動的に行われるため、作成されたリポジトリを複製して開始点を得ることができます。