2

私は他の1人の開発者と小さなプロジェクトに取り組んでいますが、少し状況があります。私たちは両方ともSVNに精通していますが、Gitは私たち両方にとって新しいものです。

私たちはリポジトリ内の単一のブランチに取り組んでおり、それぞれがプロジェクトのさまざまな側面に取り組んでいます。

何が起こったのかというと、彼は何かをコミットし、次に私は何かをコミットし、競合が発生しました(デザイナーファイルでは、両方の新しいファイルを同じ「スポット」に配置しようとしたため)。動いていない。私はなんとかしてファイルを動作状態にすることができ、悪い競合解決の影響を受けないものをさらに追加して、陽気な方法を続けました。

のように見えます。

A(良い)-> B(悪い)-> C(修正しようとしています)-> D(悪いコミットを元に戻す)-> A-> E(完全に新しいファイル)-> F(完全に新しいファイル)-> G(その他devは大きな問題以来最初にコミットし、より多くの問題と競合をもたらします。)

基本的に私がやりたいのは、Aに戻って、B、E、Fのコミットをマージすることです。この時点で、他の開発者はGをコミットできます。この時点では、BとEの間で何が起こったのかわかりません。問題を解決しようとしたのは私だけだったので、私はむしろそれを捨てたいと思います。ただし、Aに戻ると、最初にBをコミットしたときと同じ競合のプロンプトが表示されません。

神が私を助けてください。

4

1 に答える 1

4

SHA参照を使用してAコミットをチェックアウトし、Aから新しいブランチを作成し、gitのcherry-pickコマンドを使用してB、E、Fをチェリーピックしてみてください。

git checkout -f A23FDE (A)
git checkout -b new-branch-name
git cherry-pick F45HJ2 (B)
git cherry-pick E49FG2 (E)
git cherry-pick K83D87 (F)
于 2012-05-24T14:32:43.970 に答える