1

ローカルのgitリポジトリにmasterとLoggingの2つのブランチがあります。どちらのブランチにも、BitBucketにリモートがあります。マスターは私が現在取り組んでいるプロジェクトのメインブランチです。他の開発者が機能を終了すると、ブランチをマスターにマージします。ロギングは私の現在の機能ブランチであり、マスターから作成されました。

最新のアップデートを入手してマージの苦痛を軽減するために、私は頻繁に次のことを行います。

git pull origin master

Loggingブランチがチェックアウトされている間。このコマンドについての私の理解は、マスターブランチのリモートオリジンからフェッチし、変更をローカルマスターにマージすることです。

次に、次のことを行います。

git merge master

ここでやろうとしているのは、ロギングブランチにプルしたばかりの変更をマージすることです。ただし、gitは常に次のように応答します。

Already up-to-date.

実際、git logとgitkを見ると、私のローカルのLoggingブランチにマスターのプルされたばかりのコンテンツがすでに含まれていることがわかります。「gitpulloriginmaster」を実行すると、Loggingブランチにまったく影響が出るとは思っていませんでした。ここで何がわからないのですか?

4

1 に答える 1

7

Gitプルにはマージが含まれます:

git pull origin master

と同等です

git fetch origin
git merge origin/master

つまり、指定されたオリジンのブランチを現在チェックアウトされているブランチにマージします。

単独では、git fetch origin現在チェックアウトされているブランチはまったく表示されません。リビジョンを取得し、refs/remotes/origin名前空間の下にリモートヘッドを保存します。そこgit merge origin/masterからプルします(名前がで修飾されていない場合refs/something、gitは、、を調べrefs/headsますrefs/tagsrefs/remotes

于 2013-02-06T12:22:54.460 に答える