コンピューターのローカル ブランチを別のブランチにリベースして台無しにしました。リベースしたかったのですが、リベースしたいブランチに切り替えず、結果としてめちゃくちゃになってしまいましたsomebranch
。リベースの失敗を元に戻す方法がわかりませんでしたsomebranch
(将来のために知っておくとよいと誰かが知っている場合) somebranch
。何をしたかわかりませんが、それも台無しにしました。最終的に、削除されたローカル ブランチをリモート オリジンから取得して再作成するための正しいコマンドと思われるコマンドを見つけました。
git fetch origin somebranch:refs/remotes/somebranch
git checkout -b somebranch --track origin/somebranch
gitk では
、somebranch、remotes/somebranch、remotes/origin/somebranch の3 つがあることがわかります。
しかし、他のすべてのブランチには、ローカルと 1 つのリモートのみが表示されます。例:
someotherbranch、remotes/origin/someotherbranch
実行git for-each-ref
したところ、ref/remotes/somebranch と ref/remotes/origin/somebranch の両方が同じコミットを指しています。
私の質問は、この 2 つの違いと、ref/remotes/somebranch を取り除く方法です。試してみgit update-ref -d remotes/somebranch
ましたが、うまくいきませんでした。