没有远程仓库,只有一个本地仓库和两个分支。
$ 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条答案
按热度按时间fcwjkofz1#
pull
是一个组合命令,fetch
后跟merge
。使用默认或合理的参数,它将同步您的当前分支。由于参数问题,它的大部分工作都被破坏了。fetch部分被否决以使用当前repo,因此跳过该部分,并且您显式地要求master否决FETCH_HEAD。
所以在这种形式下,我相信它们是相同的(我也会把第一个放在无意义的类别中)。
yv5phkfx2#
git pull . master
从当前的仓库中获取(无操作),然后将执行一些操作,使当前分支与master
保持同步。这个东西可能是一个merge,但也可能是一个rebase,具体取决于配置设置pull.rebase
或branch.master.rebase
。在合并的情况下,合并策略可能会受到
pull.twohead
的影响。git merge master
将始终使用默认合并策略合并master。mv1qrgav3#
唯一的区别-在第二种情况下(
git merge master
),它将与不是 fresh 数据合并,而是与上次远程更新的数据合并。所以,如果你只是创建了fetch
(或git remote update
)-它们的工作方式是一样的,但是如果你很久以前更新了本地存储库-它将与旧的快照合并。不确定
git pull . master
中的句点是否正确语法。