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. 

其实我不明白,为什么在这个手册页提到这是非常有用的。

+1

no git-merge - 将两个或更多的开发历史结合在一起。而git-pull - 从另一个版本库或本地分支获取并合并 – cptnk

git pull . master从目前的仓库去取(无操作),然后会做一些事情,以使当前分支最新与master。这可能是一个合并,但它也可能是一个rebase,取决于配置设置pull.rebasebranch.master.rebase

在合并的情况下,合并策略会受到pull.twohead的影响。

git merge master将始终合并master与默认合并策略。

pull是一个组合命令,fetch后跟merge。使用默认或明智的参数,它会同步你当前的分支。

随着有关参数的大部分工作被破坏。取消部分被否决,以使用当前的回购,因此会被跳过,并且您明确要求主控否决FETCH_HEAD。

因此,在这种形式下,我认为它们是相同的(我也把第一个放在无意义类别中)。

+0

因为远程程序是'。',所以它会一样的,不是吗? – jszakmeister

+0

正如我指出的,没有远程存储库。所以'fetch'没有做任何事情。你能调整你的答案吗?我很高兴提到通常git pull等同于git fetch&git merge。 – Hotschke

唯一的区别 - 在第二种情况下(git merge master)它将合并而不是新鲜数据,但与您上次远程更新的数据。因此,如果您只是制作了fetch(或git remote update) - 它们的工作方式相同,但如果您很久以前更新了本地存储库,它将与旧快照合并。

不知道在git pull . master时期是正确的语法......

+0

它也让我感到困惑,但似乎正在跳过抓取部分 –