git rebase の競合に問題がありますが、2 つのリモート リポジトリを使用している場合のみです。ワークフローは次のとおりです。
- 仕事する...
- 専念
- pull -r ステージング マスター
これはうまくいきます。競合があれば解決できます。
次に、本番リモートリポジトリで作業するときに問題が発生します。私は生産を推進しているのは私だけです。
- git pull -r production (何らかの理由で本番環境にプッシュする前にこれを行う必要があります...早送りプッシュする必要があるため、理由はわかりません。)
- git push プロダクション
- git pull -r staging (リポジトリを更新するため)
ここでは、私が作業していないファイルであらゆる種類のマージ競合が発生します。
競合は次のようになります。
<<<<<<< HEAD
here's some code...
=======
more code...
>>>>>>> commit foo
それで、ここに質問があります:
- 私だけが本番環境にプッシュしているのに、なぜ本番環境からプルする必要があるのですか?
- 既にコミットされていて、変更していないコードでマージの競合が発生するのはなぜですか?
- どのコミットを選択しますか? HEAD または commit foo
- それが起こらないようにするためのより良いプロセスは何ですか?