我是git的新手,目前正尝试各种组合来理解git。
我有一个名为' dev'的分支机构。现在我最初让我的本地与遥控器同步。然后我直接从Github改变了遥控器。
现在,如果我使用
git fetch origin dev:dev
然后我收到错误
fatal: Refusing to fetch into current branch refs/heads/dev of non-bare repository
但是,以下pull命令可以正常工作
git pull origin dev
在Stackoverflow的一个回答中,提到fetch后跟merge,相当于git pull。
如果是这样,为什么会出现这种差异呢?
问题链接:understanding git fetch then merge
PS:评论中的链接建议的答案是正确的。但是我想知道
git fetch origin
从所有分支中提取,包括当前分支。那么为什么只在
的情况下才进行检查git fetch origin master:master
我无法理解此验证背后的原因。 任何帮助都表示赞赏。
由于
答案 0 :(得分:1)
致命:拒绝获取非裸存储库的当前分支refs / heads / dev
此错误通常意味着您正在获取没有远程分支的分支。我在这里做了一些假设,你想从origin
repo中获取并合并从dev
到你当地分支的最新变化。如果是这种情况,那么您想尝试以下内容:
git fetch origin
git merge origin/dev