1

Pro Git (3.5) によると:

[remote branches are] local branches that you can’t move; they’re moved     
automatically whenever you do any network communication.

ただし、これは実際には正しくないようです。私は得る状況に到達しました

 Your branch is ahead of 'origin/branch-x' by 23 commits.

しかし、私は実際にはコミットを行っていません。他の人がオリジンにプッシュした変更をフェッチ/プルしただけです。Pro Git のステートメントが正しければ、すべてのフェッチまたはプルがオリジンとの通信になるため、リモート ブランチがローカル ブランチと同じであることが期待できます。

リモート ブランチを更新する正確な操作は何ですか?

4

2 に答える 2

1

この本にあるように、git がネットワーク操作を行うたびに、それらは自動的に移動されます。したがって、、、およびが含まgit fetchgit pushますgit pull

Pro Git のステートメントが正しければ、すべてのフェッチまたはプルがオリジンとの通信になるため、リモート ブランチがローカル ブランチと同じであることが期待できます。

「自動的に移動」の意味について少し混乱していると思います。リモート ブランチが移動されると、リモート リポジトリの現在の状態を反映するように移動されます。リモート リポジトリ自体はgit fetchまたはによって変更されないgit pullため、リモート ブランチも移動しません。

実行git log --oneline --graph --decorateして、リポジトリの現在の状態を表すグラフを確認してください。そのグラフ内のbranch-xとの位置に注意してください。origin/branch-x次に、実行git pushして変更をリモート リポジトリにプッシュします。その後、git log --oneline --graph --decorate再度実行します。移動したことがわかりますorigin/branch-x。それがあなたが参照した引用の意味です。

于 2013-07-17T13:51:32.240 に答える