git rebase
最近実行したいくつかのブランチを含むローカル ref があります。
A---B---C---D master
\
E---F---G topic1
\
H---I---J topic2
それは次のようになりました:
A---B---C---D master
\
E'---F'---G' topic1
\
H'---I'---J' topic2
次の一連のコマンドを使用します。
git checkout topic1
git rebase master
git checkout topic2
git rebase topic1
問題?
git rebase --no-ff
以前にマージしたすべてのブランチを追跡するために、うっかり忘れていました。gitk --all
さて、マージがどこで行われたかを ( を使用して) 簡単に知る方法がありません。と の間のどこかで発生したことは知っていますが、各コミットを個別に実行しないと、道に迷ってしまいますHEAD@{E}
。HEAD@{J}
私がやろうと決めたこと:
したがって、ここでgit reflog
提案されているように使用し、2 つのリベースが発生する前に元の状態に戻してから、提案したようにしようと考えました。 git reset --hard HEAD@{#}
git rebase branchname --no-ff
私の究極の質問はこれです(いくつか追加):
最初のコミットの前に最後のコミットまで戻ることはできますrebase
か?それとも、各リベースを個別にロールバックする必要がありますか? トップブランチのそれぞれは、私が持っていたものとまったく同じですか (私が探している高速転送されていないマージを示しています)? 私はこれを難しくしすぎていますか/これを行う簡単な方法はありますか? 私が考えるのを怠っていることはありますか?
ありがとう。