2

2 つのリモート svn ブランチを追跡する 2 つのローカル git ブランチがあります。

マスターがsvnトランクを追跡し、「ブランチ」がsvn「ブランチ」を追跡するようにセットアップしました。

最近、私はローカルの「ブランチ」でいくつかのローカル作業を行っていましたが、速度のために入力しました

git svn rebase -i HEAD~2

それ以外の

git rebase -i HEAD~2.

2 つのローカル コミットを実行した後、コマンド ラインで

git は奇妙なことをしました。svn トランクからコミットを取得し、ローカルの「ブランチ」にリベースしました。マスターに戻って git svn rebase を試したところ、「ブランチ」にマージされたコミットがマスター ツリーにありませんでした。これは、2 つのブランチ間のマージが壊れているだけでなく、トランクと同期されていないため、基本的にマスターで作業できないことを意味します。この状況を改善する方法はありますか?

4

1 に答える 1

0

reflog を使用してリベースを元に戻すことができます。git reflogリベースを実行する前に、ブランチが指していたコミットを見つけるために使用します。次に、 を使用git reset --hard <COMMIT-ID>してブランチを元に戻します。

警告:

これを行う前に、ローカルの変更に注意してくださいgit stash(そうしないと、それらは消えてしまいます)。また、失敗したリベースの後に他のコミットを行った場合は、それらを手動で (おそらく を使用してgit cherry-pick) レスキューする必要があります。

于 2013-08-27T21:34:40.870 に答える