1

私は小さなプロジェクトで友人と協力しており、ソースバージョン管理としてGitを使用しています。これが問題のシナリオです。

  1. 私はバージョンAから作業を開始し、バージョンBへのローカルコミットをいくつか行いました。
  2. 私の友人もAから始めて、バージョンCを中央リポジトリにプッシュしました。
  3. 'git pull --rebase'を実行し、バージョンBをプッシュしました。したがって、リモートリポジトリはA->C->Bのようでした。
  4. その間、私の友人はまだ彼がプッシュしたバージョンCに取り組んでいました。彼がバージョンDをプッシュしようとしたとき、彼は失敗したマージを実行しました(彼が正確にどのように実行したかはわかりません)。その結果、コミットDにはC-> Dからの変更が含まれていましたが、A->Bからの変更は破棄されました。したがって、リモートリポジトリは現時点ではA-> C-> B-> Dのように見えますが、バージョンDはC->Bからすべての変更を削除しました

この失敗したマージを修正する最も簡単な方法は何でしょうか。

4

1 に答える 1

0

あなたの友人もおそらくすることができたのはgit push --force、結果としてA-C-D

1つの方法は、あなたが再びpush --forceあなたのコンテンツ(A-C-B)にアクセスし、あなたの友人が次のことを行うことです。

  • tmp彼の現在の仕事に加えてブランチをチェックアウトする
  • git fetch origin
  • master彼のブランチをにリセットorigin/master
  • Dブランチからマスターにチェリーピックtmp(マージが含まれる場合があります)
  • git push origin
于 2012-10-14T11:38:47.697 に答える