git pull之间的区别。 master vs git merge master

时间:2013-06-27 09:09:32

标签: git git-merge

没有远程存储库,只有一个带有两个分支的本地存储库。

$ git branch -a
  master
* devel

以下命令在此上下文中是否相同/同义词?

$ git pull . master

$ git merge master

更新

$ 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.

我实际上不明白为什么这个有用,如本手册页中所述。

3 个答案:

答案 0 :(得分:16)

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

随着问题的解决,大多数工作都被破坏了。取消部分被推翻以使用当前的repo,因此跳过,并明确要求主控覆盖FETCH_HEAD。

所以在这种形式中我相信它们是相同的(我也把第一个放在废话类别中)。

答案 1 :(得分:12)

git pull . master从当前存储库中获取(无操作),然后执行某些操作以使当前分支与master保持同步。这可能是一个合并但它也可能是一个rebase,具体取决于配置设置pull.rebasebranch.master.rebase

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

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

答案 2 :(得分:4)

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

不确定git pull . master中的句点是否为正确的语法...