git fetch B+ merge B和merge origin/B有什么不同?
$ git fetch origin develop
From [...]
* branch develop -> FETCH_HEAD
$ git merge develop
Already up-to-date.
$ git merge origin/develop
error: Your local changes to the following files would be overwritten by merge
...在上面的序列中,我希望合并输出相同,但结果不同。我期望"fetch“命令在本地检索远程分支,以便它可用于本地合并操作。在fetch完成之后,我希望merge from local分支的操作与从原始分支的merge操作是相同的。我对这个期望的理解是错误的吗?
发布于 2016-07-08 14:11:57
Fetch仅下载提交,但不会将它们应用于分支的本地副本。要使这两个操作等效,您需要首先将原始/B与(本地)B合并。如果不这样做,本地B的头不会改变,分支将“落后于”原点(您可以通过在本地B签出时运行git status或运行git branch -vv来验证这一点)。
请注意,这与git签出B与git签出源/B的差异相同。
发布于 2016-07-08 14:44:50
git fetch origin develop将远程服务器上的develop分支提取到您的远程分支origin/develop (存在于
将本地develop分支合并到当前分支。假设您当前已经签出了develop,这将不会执行anything.
git merge origin/develop将本地origin/develop分支合并到当前分支中。origin/develop指的是origin remote本地存储库中develop的远程分支。这将合并您在第一步中获取的分支。
https://stackoverflow.com/questions/38259839
复制相似问题