我知道git fetch
和git pull
之间的区别。 git pull
在一个命令中基本上是git fetch
+ git merge
。
但是,我正在研究如何使用上游更新我的fork(主分支)而不检查主分支。我偶然发现了这个答案 - Merge, update and pull Git branches without checkouts
但是当我在master上签出后我使用git fetch upstream master:master
时,我遇到了这个错误 -
fatal: Refusing to fetch into current branch refs/heads/master of non-bare repository
所以,我尝试git pull upstream master:master
并且它有效。有趣的是,git pull upstream master:master
使用上游更新我的分叉,无论我是否在主人身上。而git fetch upstream master:master
仅在我不在主分支上时才有效。
从这里知识渊博的人那里阅读解释将是非常有趣的。