【发布时间】:2016-09-20 22:30:51
【问题描述】:
我是 git 的新手,目前正在尝试各种组合来理解 git。
我有一个名为“dev”的分支的存储库。现在最初我将我的本地与远程同步。然后我直接从 Github 换了遥控器。
如果我现在使用
git fetch origin dev:dev
然后我收到一个错误
fatal: Refusing to fetch into current branch refs/heads/dev of non-bare repository
但是,以下拉取命令可以正常工作
git pull origin dev
在 Stackoverflow 的一个回答中提到,提取后合并等同于 git pull。
如果是这样,那么为什么会出现这种差异?
问题链接:understanding git fetch then merge
PS:cmets 下面的链接建议的答案是正确的。但是我想知道
git fetch origin
从包括当前分支在内的所有分支中获取。那为什么只在
的情况下执行检查git fetch origin master:master
我无法理解此验证背后的原因。 任何帮助表示赞赏。
谢谢
【问题讨论】:
-
其实
pull是fetch+merge的快捷方式。但是dev:dev参数是其中的关键。请看一下这个答案:stackoverflow.com/a/32561463/2104879 -
嗨 Mertyildiran,感谢您帮助我。你建议的答案是正确的。