0

すべてのユーザーに対して単一のブランチを使用します。ユーザーがプッシュしようとするたびに、最初に他の変更をプルする必要があります。これにより、ほとんどのシナリオで正常に機能する git automerge が生成されます。

昨日、ユーザーの 1 人が上記の操作を行った結果、競合が発生し、自動マージに失敗しました。ここで、その人は競合を解決し、このマージの一部としてすべてのファイルをコミットする代わりに、競合しているファイルのみをコミットしてプッシュしました (それらを解決した後)。

これにより、彼がコミットしていないすべてのファイルがリモートリポジトリで古いものとして表示されるという状況が発生しました。

変更はまだ彼のマシンに残っており、ファイル履歴に移動してもプルされていない場合は、git でも確認できます。

これから抜け出す方法はありますか?

ところで、 --rebase または --ff-only オプションは使用しません。

4

1 に答える 1

0

これが私がこれを解決した方法です-

  • 誤ったコミットに加えて、5 ~ 6 個のコミットがありました。
  • これらのコミットは、誤ったコミットとともに元に戻しました。
  • 正しいファイルを再度コミットしてプッシュしました。
  • 再び元に戻されたコミットを再生しました。

なぜこのようにする必要があるのか​​ を理解するために、ここで別の質問をしました。

解決策を提案する際にこのヘルプを提供してくれた @eatSleepCode に感謝します。

于 2014-03-13T04:04:20.307 に答える