一般在push的时候是不是都会先pull一下以保证代码最新,但是如果以下场景怎么办:
A:push,但是git提示过期于是进行pull,pull之后发现有冲突,然后merge B:在Amerge的过程向服务器push了。 A:等他merge完,在push的时候服务器又变化了,再pull - merge .....
这样会不会导致A一直没法push?
业精于勤,荒于嬉;行成于思,毁于随。
最初のマージ中に生成された競合の原因はローカルで解決されました。 他の人がプッシュしたコードがこの部分を変更しない場合、 再度マージするとスムーズに進みます。 Git が自動的に処理してくれるので、あまり心配する必要はありません。
マージ中に常に競合が発生する場合は、競合部分のコードが非常に不安定であることを意味します。 この問題を完全に解決するには、開発者同士で通信するか、何らかの方法を使用して回避する必要があります。
マージ後は新しいバージョンになります。プッシュで他のバージョンが見つかった後、別のバージョンのマージを続けます。
いつか押し上げることができます。
この問題は 2 つの方法で解決する必要があります。 1 つ目: バージョンの違いが大きすぎる場合にのみ、プッシュする前にプルとマージを行う必要があります。ただし、マージ後、バージョンの差が大きくなければ、プッシュできます。 2 番目: 誰もが自分のブランチを保持する必要があります。まず独自のブランチにプッシュし、次にサーバーからマスターにマージします。
A と B は話し合い、合意に達することができます。リベースのみを行い、マージは行いません。このようにして、歴史は 1 つの行で混乱がなく、より良く見えます。
このような問題が発生した場合は、AとBの間のコード結合が多すぎるため、再分割する必要があることを意味します
競合があるので、彼とあなたの間に競合がなくなるまでマージを続けてください。その後、それを押し上げることができます
最初のマージ中に生成された競合の原因はローカルで解決されました。 他の人がプッシュしたコードがこの部分を変更しない場合、 再度マージするとスムーズに進みます。 Git が自動的に処理してくれるので、あまり心配する必要はありません。
マージ中に常に競合が発生する場合は、競合部分のコードが非常に不安定であることを意味します。 この問題を完全に解決するには、開発者同士で通信するか、何らかの方法を使用して回避する必要があります。
マージ後は新しいバージョンになります。プッシュで他のバージョンが見つかった後、別のバージョンのマージを続けます。
いつか押し上げることができます。
この問題は 2 つの方法で解決する必要があります。 1 つ目: バージョンの違いが大きすぎる場合にのみ、プッシュする前にプルとマージを行う必要があります。ただし、マージ後、バージョンの差が大きくなければ、プッシュできます。 2 番目: 誰もが自分のブランチを保持する必要があります。まず独自のブランチにプッシュし、次にサーバーからマスターにマージします。
A と B は話し合い、合意に達することができます。リベースのみを行い、マージは行いません。このようにして、歴史は 1 つの行で混乱がなく、より良く見えます。
このような問題が発生した場合は、AとBの間のコード結合が多すぎるため、再分割する必要があることを意味します
競合があるので、彼とあなたの間に競合がなくなるまでマージを続けてください。その後、それを押し上げることができます