git pull的区别master vs git merge master

pkln4tw6  于 2023-06-20  发布在  Git
关注(0)|答案(3)|浏览(176)

没有远程仓库,只有一个本地仓库和两个分支。

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

我真的不明白为什么这是有用的,因为在这个手册页中提到。

fcwjkofz

fcwjkofz1#

pull是一个组合命令,fetch后跟merge。使用默认或合理的参数,它将同步您的当前分支。
由于参数问题,它的大部分工作都被破坏了。fetch部分被否决以使用当前repo,因此跳过该部分,并且您显式地要求master否决FETCH_HEAD。
所以在这种形式下,我相信它们是相同的(我也会把第一个放在无意义的类别中)。

yv5phkfx

yv5phkfx2#

git pull . master从当前的仓库中获取(无操作),然后将执行一些操作,使当前分支与master保持同步。这个东西可能是一个merge,但也可能是一个rebase,具体取决于配置设置pull.rebasebranch.master.rebase
在合并的情况下,合并策略可能会受到pull.twohead的影响。
git merge master将始终使用默认合并策略合并master。

mv1qrgav

mv1qrgav3#

唯一的区别-在第二种情况下(git merge master),它将与不是 fresh 数据合并,而是与上次远程更新的数据合并。所以,如果你只是创建了fetch(或git remote update)-它们的工作方式是一样的,但是如果你很久以前更新了本地存储库-它将与旧的快照合并。
不确定git pull . master中的句点是否正确语法。

相关问题