1

別のコンピューターを使用する必要があります。あるファイルでファイルA、Bと他のファイルを更新し、別のファイルでB、Cと他のファイルを更新しました。

ファイルBの更新は、コードの別の部分です。私は両方にコミットしました。AとBをgithubにプッシュしました。

質問:

  • 今、私は別のもので何をすべきですか?

  • 引っ張るだけでいいですか?または、最初にプッシュする必要がありますか?

  • プッシュすると、ファイルAは上書きされますか?

  • 引っ張ると、ファイルCは上書きされますか?

  • どのようなプロセスを取る必要がありますか?

  • バージョンの異なるファイルBをどうすればいいですか?それらをマージできますか?

4

3 に答える 3

2

最初にプルする必要があります。これにより、サーバーにあるものの上に追加が追加されます。プルしたら(以前にプッシュしたModをローカルのModとマージします)、プッシュできます。ところで:これはgithubではなく、プレーンなgitです。gitの仕組みを理解するために、次の本をお勧めします。

http://book.git-scm.com/

于 2011-05-16T21:26:59.957 に答える
1

プル->リベース->プッシュ:http://learn.github.com/p/rebasing.html

于 2011-05-16T21:24:24.907 に答える
0

通常のシナリオでは、変更をプッシュする前にプルを実行します。ただし、前回プルしたときからコミットの現在の祖先が同じである場合があります(つまり、他のすべてのコミットはまだプッシュされていません)。つまり、マージは不要であり、変更をプッシュする必要はありません。引っ張る。

他の誰かが変更を間にプッシュしたら、常に変更を自分の変更にプルする必要があります(これは、gitがマージコミットと呼ばれるものを作成する場所です。これは、gitaddでは通常の方法では作成されないコミットです。 git commitなど)。これで、リポジトリが最新の変更と同期され、中央リポジトリを自分のリポジトリと安全に同期することができます。

この場合、最初にプルする必要があります。これは、両方のリポジトリのバージョンが同じであるため、Cが上書きされないことを意味します(両方のリポジトリでBのみを変更したことを忘れないでください)。

gitでマージする必要のある2つの異なるバージョンがあるBの場合、競合が発生する可能性があります。しかし、これはまさにプルであり、(リポジトリを同期するための)フェッチであり、リモートブランチを追跡しているローカルブランチ間のマージです。たとえば、マスターはオリジン/マスターとマージされます。

そして最後に同じことがAにも起こります。最初のリポジトリでAに加えられた変更は、他のリポジトリのAに簡単にマージされます。これは、変更されたAが他のリポジトリの同じバージョン(同一のブロブ)から変更されているためです。リポジトリ。

これがいくつかのものをクリアしたことを願っています。

乾杯!

于 2011-05-16T22:08:58.757 に答える