通常のシナリオでは、変更をプッシュする前にプルを実行します。ただし、前回プルしたときからコミットの現在の祖先が同じである場合があります(つまり、他のすべてのコミットはまだプッシュされていません)。つまり、マージは不要であり、変更をプッシュする必要はありません。引っ張る。
他の誰かが変更を間にプッシュしたら、常に変更を自分の変更にプルする必要があります(これは、gitがマージコミットと呼ばれるものを作成する場所です。これは、gitaddでは通常の方法では作成されないコミットです。 git commitなど)。これで、リポジトリが最新の変更と同期され、中央リポジトリを自分のリポジトリと安全に同期することができます。
この場合、最初にプルする必要があります。これは、両方のリポジトリのバージョンが同じであるため、Cが上書きされないことを意味します(両方のリポジトリでBのみを変更したことを忘れないでください)。
gitでマージする必要のある2つの異なるバージョンがあるBの場合、競合が発生する可能性があります。しかし、これはまさにプルであり、(リポジトリを同期するための)フェッチであり、リモートブランチを追跡しているローカルブランチ間のマージです。たとえば、マスターはオリジン/マスターとマージされます。
そして最後に同じことがAにも起こります。最初のリポジトリでAに加えられた変更は、他のリポジトリのAに簡単にマージされます。これは、変更されたAが他のリポジトリの同じバージョン(同一のブロブ)から変更されているためです。リポジトリ。
これがいくつかのものをクリアしたことを願っています。
乾杯!