1

この例は、github Webサイトの「ステップ3:リモートの構成」のoctocatの例の後にあります。

git remote add upstream git://github.com/octocat/Spoon-Knife.git
git fetch upstream

これらのコマンドを実行した後、私が理解している限り、リポジトリのクローンを作成してからgithubユーザーoctocatが行った変更は、プロジェクトのローカルリポジトリに実装されています。しかし、上記のコマンドを実行した後、ユーザーoctocatがプロジェクトに再度変更を加えたとします。

Q1:すべての変更がローカルフォルダに自動的に更新されるようになりましたか?(私はそうは思わない)

Q1の答えが「いいえ」の場合:

Q2.1:新しい変更を再度更新するには、1つのコマンドgit fetch upstreamを再度実行するだけで、新しい変更を更新できますか?

Q2.2:その最新のフェッチで行われた変更のみのログを取得できますか?

4

1 に答える 1

4

Q1:いいえ。Gitはリモートの変更をポーリングしません。git fetch変更をプルダウン(またはプル)するには、gitにコマンドを実行する必要があります。

ただし、ブランチがリモートブランチを追跡している場合(おそらくそうです)、git statusgitを発行すると、ブランチがリモートの前にあるか後ろにあるかがわかります。先に進んでいる場合は、リモートで何も変更されていないときにコミットを実行しました。遅れている場合は、新しいコミットがリモートに追加されています。

Q2:はい。ただし、git fetch変更をプルダウンするだけであることに注意してください。それらを現在のブランチにマージしません。したがって、実際にそれらをマージするまで、変更を「見る」ことはありません。それらは別のブランチに住んでいます-この場合、アップストリーム/マスター(マスターが問題のブランチであると仮定します)。

変更を確認し、それらをローカルブランチにマージする準備ができたら、次の方法で行うことができます。

git merge upstream/master

Q2.2:はい。git fetchこれが、行うことが役立つ理由です。git pull1回の操作でフェッチとマージを行う場合と比較して、変更内容を簡単に確認できます。その場合でも変更のリストを取得できますが、少し難しくなります。

あなたの場合、git fetchを実行している場合、行われた変更を確認するには、を実行しますgit diff upstream/master

于 2012-06-10T14:45:09.543 に答える