与 https://git-scm.com/book/en/v1/Git-Branching-Remote-Branches 我发现了
远程分支是对远程存储库上分支状态的引用。它们是您无法移动的本地分支机构;只要您进行任何网络通信,它们都会自动移动。远程分支充当书签,以提醒您远程存储库上的分支是您上次连接它们的位置。 ... 要同步工作,请运行git fetch origin命令。此命令查找哪个服务器起源(在本例中为git.ourcompany.com),从中获取您尚不具备的任何数据,并更新本地数据库,将起源/主指针移至新的数据库,保持最新状态(见图3-24)。
让我感到困惑的是: 为
只要您进行任何网络通信,它们都会自动移动。
为什么我们需要git fetch
手动进行同步?
此外,我们是否应该在此处用“远程跟踪分支”替换“远程分支”? 因为“远程分支”通常是指远程计算机上的分支。
答案 0 :(得分:0)
只要您进行任何网络通信,它们都会自动移动。
这意味着当您执行git fetch
或pull
(因为pull包含访存)来表示远程分支的状态时,它们会更新。
例如当我执行git fetch
时,所有远程分支都将更新,以反映远程存储库本地分支的状态。
Remote Repository | Local Repository
|
| refs/heads/master
A -- B -- C | |
^ | V
| | A -- B
refs/heads/master | ^
| |
| refs/remotes/origin/master
如果您现在执行git fetch
,则本地存储库的远程目录将被更新。
Remote Repository | Local Repository
|
| refs/heads/master
A -- B -- C | |
^ | V
| | A -- B -- C
refs/heads/master | ^
| |
| refs/remotes/origin/master
因此,您永远不会手动更新远程分支。 they’re moved automatically whenever you do any network communication.
答案 1 :(得分:0)
只要您进行任何网络通信,它们都会自动移动。
我猜这是在谈论Git中的 HEAD pointer
,它确定了当前的工作版本(因此文件将被放置在项目的工作目录中)。通常,当您要签出分支(远程)时,在创建新提交时表示 Git will move the HEAD pointer automatically
。