拉其他分支与获取并合并远程跟踪分支?

时间:2020-03-04 07:55:51

标签: git

大多数关于this问题类型的SO帖子的答案似乎都在其中,我已经签出了某个分支机构a,并希望合并到master中的最新origin中暗示一种主要的做事方式。即:

git fetch origin
git merge origin/master

但是,代替git pull origin master似乎更为简洁。 This的答案似乎暗示着存在一些细微的差异,但似乎其中一些已得到解决,例如也更新了跟踪分支origin/master。所以我想知道两者是否有区别,或者为什么第一种方法会更好?

2 个答案:

答案 0 :(得分:1)

通常情况是相同的。

运行Option Explicit Dim PowerPointApp As Object Dim myPresentation As Object Dim oPPSlide As Object Sub Sample() '~~> Establish an PowerPoint application object On Error Resume Next Set PowerPointApp = GetObject(, "PowerPoint.Application") On Error GoTo 0 If PowerPointApp Is Nothing Then MsgBox "No Powerpoint Instance found" Exit Sub End If PowerPointApp.Visible = True '~~> Work with open Presentation1 Set myPresentation = PowerPointApp.Presentations("Presentation1") '~~> Change this to the relevant slide which has the shape Set oPPSlide = myPresentation.Slides(4) If ShapeExists("MSDreieck2") Then ' '~~> Rest of your code ' End If End Sub Function ShapeExists(ByVal ShapeName As String) As Boolean Dim oSh As Object For Each oSh In oPPSlide.Shapes If oSh.Name = ShapeName Then ShapeExists = True Exit Function End If Next End Function 会运行命令git pullgit fetch origin

但是您可以将默认合并策略更改为例如重新合并。在这种情况下,git merge origin/master将执行git pull而不是git rebase

如您所见here,您可以通过运行git pullgit pull命令配置为使用rebase合并(如果您只想这样做,则可以使用git config --global pull.rebase true在一个存储库中。

有关详细信息,请参见the documentation of git pull

答案 1 :(得分:1)

一些更复杂的细节取决于您的Git版本,这就是我所链接的答案中要注意的内容。如果您想知道各种不同的Git命令之间的 precise 区别,则需要指定确切的命令-包括所有内容的确切拼写-精确的Git版本。

如果您想要更笼统的“这主要是做什么的”,则git pull带有没有选项和参数大多运行git fetch,然后运行git mergefetch部分使用当前分支的 remote ,合并部分使用当前分支的 upstream 。因此,无论您是完全不带参数的一个命令git pull还是完全不带参数的两个单独的命令git fetchgit merge都可以做到这一点事情。一旦开始添加各种选项和参数,我们就必须开始对所使用的Git版本保持挑剔,依此类推。

(您当然可以将git pull配置为运行git rebase作为第二个命令,在这种情况下,请在上面的所有位置替换git rebase。有关版本相关的细微差异的警告仍然存在在某些方面,情况更糟:例如,叉点样式变基最初仅由git pull引入,然后在commit ad8261d2122git rebase中添加。)

我个人比较喜欢先运行git fetch,然后检查其输出,并且通常先运行git log,然后再运行git mergegit rebase。如果您使用git pull,则实际上不可能插入第二个命令。

我还发现,对于刚接触Git的人,分别教git fetch,然后git mergegit rebase,然后只有 then 指出{{1} }结合了这两个步骤,可以有效地使用 Git。它还提供了仅适用于git pull的奇数语法的原因,即为什么是git pull而不是origin master的原因。