【发布时间】:2017-03-28 21:58:05
【问题描述】:
Github-Help: Syncing a Fork 的文档显示了三个命令,以使我的 GitHub 分支与上游存储库保持同步。
git fetch upstream
git checkout master
git merge upstream/master
我可以用下面两个命令代替上面三个吗?
git checkout master
git pull upstream/master
这两组命令是等效的,还是它们之间有区别?
【问题讨论】:
-
git pull=git fetch+git merge,至少在一般情况下 -
仅供参考:
git pull upstream/master是错误的,因为第三个单词 (upstream/master) 必须是 remote 的名称,而upstream/master是 的名称i>远程跟踪分支。不幸的是,Git 使用了非常相似的词来表示非常不同(尽管相关)的事物:branch 这个词至少有两个含义,remote 这个词本身有一个含义,而短语 remote-tracking branch 还有一个。 -
如果您使用
git clone -o upstream克隆或获取upstream至少一次,则第二组有效。请注意,如果您克隆了,您的主分支可能已经跟踪upstream/master,在这种情况下git pull就足够了。 Git 会为你做好准备。但是,如果您从头开始创建本地副本 (git init) 并在之后添加远程 (git remote add upstream <url>),则需要指明upstream/master,除非您自己设置跟踪 (git branch --set-upstream-to upstream/master)。
标签: git git-merge git-pull git-fork git-fetch