根据其他的答案和文档,我的理解是,设置一个远程跟踪分支(也就是上游)是为了在拉取时指定远程。遥感分公司 告诉 git 从哪里拉来,推到哪里。但是,我是不是告诉 git,每次我在执行 git pull
?
例如与 git pull origin master
我告诉git从远程名为 origin
和分支机构 master
在该远程。在这种情况下,有一个远程跟踪分支有什么用呢?
我知道它决定了哪个远程分支 git status
报告,我当前的本地分支领先或落后。
我的目标是创建一个设置,从原来的分支中提取并推送到我的账户上的分叉。到目前为止,我能想到的就是设置两个远程。一个到原始仓库(上游),一个到我的分叉(原点)。因此,我可以 git pull upstream master
用于提取最新的代码和 git push origin master
来推送我的修改。
看来设置远程跟踪分支并没有什么实际作用。
它作为默认值。对于大多数人来说,在大多数情况下,他们一般都是从一个远程repo拉取和推送,而较少或从不从另一个远程repo拉取和推送。
比如,我有一个父亲的GitHub repo的分叉。DomingoMontoya/sword-designs.git
在我的账户上。InigoMontoya/sword-designs.git
. 在我的笔记本上,我克隆了后者,这就意味着 git clone
非常方便地自动命名 origin
并设置为我本地克隆的远程跟踪分支。这意味着在我工作的时候,我可以非常方便地将提交的内容推送到我的 GitHub 仓库中,只需两个字。git push
. 我不需要记得输入 git push origin
或记得我是否给我的默认远程 origin
或 github
或 upstream
.
有时候我在旅行寻找六指人的时候有了一个设计想法,我就会把它从手机上的clone推送到我的GitHub repo上。回家后,我只需输入 "git pull "即可。此外,我的朋友Fezzik有时也会通过Pull Request把想法贡献到 ,一旦合并,我也会 git pull
他们到我的本地克隆。
偶尔我 git fetch upstream
以获取我父亲的回帖的最新信息,但遗憾的是,因为他已经去世了"■▄▄■▓,所以什么都没有下来。我还是这样做,以此来纪念他。或者说我有一些不合逻辑的希望,他真的没有死。
来自 git help remote
:
请注意,push URL和fetch URL虽然可以有不同的设置,但仍然必须指向同一个地方。你推送到推送URL的内容应该是你立即从获取URL获取时看到的内容。如果你试图从一个地方(例如你的上游)获取并推送到另一个地方(例如你的发布库),请使用两个不同的远程。