没有远程存储库,只有一个带有两个分支的本地存储库。
$ 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.
我实际上不明白为什么这个有用,如本手册页中所述。
答案 0 :(得分:16)
pull
是一个组合命令,fetch
后跟merge
。使用默认或合理的参数,它将同步您当前的分支。
随着问题的解决,大多数工作都被破坏了。取消部分被推翻以使用当前的repo,因此跳过,并明确要求主控覆盖FETCH_HEAD。
所以在这种形式中我相信它们是相同的(我也把第一个放在废话类别中)。
答案 1 :(得分:12)
git pull . master
从当前存储库中获取(无操作),然后执行某些操作以使当前分支与master
保持同步。这可能是一个合并但它也可能是一个rebase,具体取决于配置设置pull.rebase
或branch.master.rebase
。
在合并的情况下,合并策略受pull.twohead
的影响。
git merge master
将始终将master与默认合并策略合并。
答案 2 :(得分:4)
唯一的区别 - 在第二种情况下(git merge master
)它将与新鲜数据合并,但与上次远程更新中的数据合并。所以,如果您刚刚创建fetch
(或git remote update
) - 它们的工作方式相同,但如果您很久以前更新了本地存储库 - 它将与旧快照合并。
不确定git pull . master
中的句点是否为正确的语法...