git pull之间的区别。 master vs git merge master
没有远程仓库,只有一个本地仓库和两个分支。git pull之间的区别。 master vs git merge master
$ git branch -a
master
* devel
,正走在这种情况下相同/同义词命令?
$ git pull . master
和
$ git merge master
UPDATE:
$ git help pull
给出以下信息
SYNOPSIS
git pull <options> <repository> <refspec>...
DESCRIPTION
...
Note that you can use . (current directory) as the <repository> to pull
from the local repository — this is useful when merging local branches
into the current branch.
其实我不明白,为什么在这个手册页提到这是非常有用的。
git pull . master
从目前的仓库去取(无操作),然后会做一些事情,以使当前分支最新与master
。这可能是一个合并,但它也可能是一个rebase,取决于配置设置pull.rebase
或branch.master.rebase
。
在合并的情况下,合并策略会受到pull.twohead
的影响。
git merge master
将始终合并master与默认合并策略。
pull
是一个组合命令,fetch
后跟merge
。使用默认或明智的参数,它会同步你当前的分支。
随着有关参数的大部分工作被破坏。取消部分被否决,以使用当前的回购,因此会被跳过,并且您明确要求主控否决FETCH_HEAD。
因此,在这种形式下,我认为它们是相同的(我也把第一个放在无意义类别中)。
因为远程程序是'。',所以它会一样的,不是吗? – jszakmeister
正如我指出的,没有远程存储库。所以'fetch'没有做任何事情。你能调整你的答案吗?我很高兴提到通常git pull等同于git fetch&git merge。 – Hotschke
唯一的区别 - 在第二种情况下(git merge master
)它将合并而不是新鲜数据,但与您上次远程更新的数据。因此,如果您只是制作了fetch
(或git remote update
) - 它们的工作方式相同,但如果您很久以前更新了本地存储库,它将与旧快照合并。
不知道在git pull . master
时期是正确的语法......
它也让我感到困惑,但似乎正在跳过抓取部分 –
no git-merge - 将两个或更多的开发历史结合在一起。而git-pull - 从另一个版本库或本地分支获取并合并 – cptnk