Gitでfatal: invalid upstream ‘HEAD~が出る原因とは?

Gitでリベースを行うときに「fatal: invalid upstream ‘HEAD○○’」(○○は数字)と出てしまう場合があります。

今回はGitのリベースでfatal: invalid upstream ‘HEAD~が出る原因についてご紹介いたします。



Gitでfatal: invalid upstream ‘HEAD~が出る原因とは?

Gitでfatal: invalid upstream 'HEAD~が出る原因とは?

結論から言うと、「fatal: invalid upstream ‘HEAD○○’」と出てしまう原因はリベースを行うときに履歴をさかのぼりすぎているのが原因です。
〇〇には数字が入るかと思いますが、例としてコミットの数が5個しかないのに「git rebase -i HEAD~6」と入力してしまうと「fatal: invalid upstream ‘HEAD~6’」というエラーが出てしまいます。

しかし、コミットが5個で「git rebase -i HEAD~5」と打っているのにエラーが出てしまうことがあります。
これは一番最初のコミットも数に数えてしまっているのが原因です。
git rebaseの性質上、一番最初のコミットは指定できないらしいです。
なぜかというとgit rebaseは修正したいコミットの親コミットを指定するという処理を行っていますが、最初のコミットには親コミットが無いので指定できないからです。

そういうときは

とコマンドを打つとrootからさかのぼってリベースを指定できます。
先ほどのコミットの数が5個しかない例では、「git rebase -i HEAD~〇〇」で4以下の数字を指定するか、

とコマンドを打つとやりたいことができるかと思います。

終わりに

今回はGitのリベースでfatal: invalid upstream ‘HEAD~が出る原因についてご紹介いたしました。

最後までお読みいただきありがとうございます。
よろしければブログやTwitterでのシェアをお願いいたします。
コメントもお待ちしております。
誤植や勘違いなどございましたらコメント欄にて教えていただけると幸いです。






Git

Posted by ちこ