私はこれまで SVN、GIT、Mercurial を使用してきましたが、後者の 2 つのワークフローは常にプル / マージ / プッシュのみで構成されていました。現在、ワークフローに親ブランチからのリベースが頻繁に含まれるプロジェクトに取り組んでおり、何が起こっているのか、またはワークフローが正しいものであるかどうかを完全に理解しているかどうかはわかりません。私は指定されたブランチですべての作業を行っているので、次のようになります。
git checkout dvl_bkend // This is 'parent' branch
git checkout -b dvl_bogdan // Created my own branch
以下はすべて自分のブランチからのものです。コーディング セッションを開始すると、次のようになります。
git pull --rebase -s recursive -X ours origin dvl_bkend
安定したものができたらすぐに、コーディングなどを行います
git add stuff
git commit stuff
// rinse and repeat above two steps
プッシュする準備ができたとき。
git pull --rebase -s recursive -X ours origin dvl_bkend
この時点で、dvl_bogdan にプッシュしたいと思いますが、最初にプルする必要があるとは言えません。だから私:
git pull origin dvl_bogdan
これにより、マージする必要がある競合が発生します(なぜこれが起こっているのかわかりません)。この時点で、何かが正しくないと推測しています。とにかく、競合を解決すれば、次のことができます。
git push origin dvl_bogdan
プル リクエストの準備が整うまで、上記のすべての手順を繰り返します。次に、それらをさらに繰り返します。どこでフローを台無しにしていますか? リベースが重複したコミットを適用し続ける状況に何とかなりました:
bogdan 5b31717 Merge branch 'develop_bogdan' of xx into develop_bogdan 8 May 2013
Bogdan Neacsa 810d753 Updated payment service to recieve an Account entity now rather that creating it itself. Also change… 8 May 2013
bogdan 429f97b Fix to model and service in payments. Quick fix to tests after changes. 8 May 2013
Bogdan Neacsa 7c6ff32 Updated payment service to recieve an Account entity now rather that creating it itself. Also change… 8 May 2013
bogdan d74ce5a Fix to model and service in payments. Quick fix to tests after changes. 8 May 2013
Bogdan Neacsa 8ab401e Updated payment service to recieve an Account entity now rather that creating it itself. Also change… 8 May 2013
bogdan 259349b Fix to model and service in payments. Quick fix to tests after changes. 8 May 2013
ありがとう、ボグダン
編集: ------------ 私には不明確な部分 -------------------
したがって、私は dvl_bogdan ブランチにいて、リモート ブランチと同期しています。
git pull origin dvl_bogdan
これは、私が最新であることを示しています。今私がやります:
git pull --rebase -s recursive -X ours origin dvl_bkend
そして、これは私に競合を与えません。しかし、今私が試してみると:
git push origin dvl_bogdan
プッシュする前にプルを行うように求められますが、このプルによって競合が発生します。ここで何が起こっているのか本当に理解できません。