同僚の仕事をリベースしようとしています。
最初に、<<<<<の頭が新しいコードを含むようにシームする多くの競合が発生します。
その後、しばらくすると次のエラーが表示されます。
fatal: update_ref failed for ref 'refs/heads/dev_504':
cannot lock ref 'refs/heads/dev_504': ref refs/heads/dev_504 is at
XXXXXXX
but expected XXXXXXXX
Could not move back to refs/heads/dev_504
その後、とにかく続行しようとすると、次のエラーが表示されます。
fatal: cannot resume: .git/rebase-apply/final-commit does not exist.
リベースでエラーが発生しないように修正するにはどうすればよいですか?
git rebase --abort
を実行して、リベースを完全に取り消すことができます。 Gitは、git rebaseが呼び出される前のブランチの状態に戻ります。
git rebase --skip
を実行して、コミットを完全にスキップできます。つまり、問題のあるコミットによって導入された変更は含まれません。このオプションを選択することは非常にまれです。
競合を修正できます。
それに失敗すると、ブランチを再作成するか、リベース状態を含む.git/rebase-mergeディレクトリを削除できます。
どうやらリベースしたいブランチは、分岐した時間の間にリベースされたようです。おそらく、履歴をクリーンアップするか、さらに別のブランチにリベースしました。もしそうなら、あなたはする必要があります:
git rebase --abort
git fetch
今興味深い部分:
git rebase --onto BUDDY_BRANCH YOUR_BRANCH~ YOUR_BRANCH
例えばローカルの分岐master(Origin/masterのチェックアウト)、新しい分岐test_branch(現在のOrigin/masterで更新したい)
git rebase --onto master test_branch~ test_branch
これは単純な用語で、ブランチの最初の親コミットを取得し、現在のマスターで対応するものを見つけ、それに基づいてリベースします。