2016-09-20 104 views
0

我是git的新手,目前正在尝试各种组合来理解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 

在#1的一个回答是前面提到,合并后的提取等价于git pull。

如果是这样,那么为什么这种差异?

问题链接:understanding git fetch then merge

PS:答案从链接意见建议下面是正确的。但我想知道

git fetch origin 

从所有分支,包括当前的提取。那么,为什么只有在

git fetch origin master:master 

情况进行检查,我无法理解这种验证背后的原因。 任何帮助表示赞赏。

感谢

+0

实际上'拉'是'fetch' +'merge'的快捷方式。但是'dev:dev'的参数在那里是有所作为的。请看看这个答案:http://stackoverflow.com/a/32561463/2104879 – mertyildiran

+0

嗨Mertyildiran,谢谢你帮助我。你提出的答案是正确的。 –

回答

0

致命的:拒绝读取到非纯仓库的当前分支裁判/头的/ dev

这个错误通常意味着你取那并不是一个分支没有远程分支。我在此做出一些假设,您想从origin回购仓库获取并从最新更改dev合并到您当地的分行。如果是这样的话,那么你想尝试以下内容:

git fetch origin 
git merge origin/dev