2016-12-05 116 views
4

我能想到的一些方法来保持叉了最新:最有效的方式来保持叉了最新

  • git pull,使用脚本应用更改(自动拉合并)
  • git pull,合并(可能的冲突?)
  • git fetch
  • 也许使用另一个分支某种方式?

问题:什么是使叉子保持最新状态的最有效方法?

+0

第一个和第二个选项是相同的。 'git pull'是'git fetch'的后面跟'git merge'的捷径。 – axiac

+0

作为开发人员,可能使用cron作业来完成上述操作可能是最有效的 –

+2

您希望与上游项目保持同步的哪些部分?主人?标签?其他分支?你高效的意思是什么?容易执行?最少的步骤?最容易整合?你是否希望将你的修改贡献回来或保持长期的分叉?它对您想要如何管理您的更改产生影响。 – jszakmeister

回答

3

让叉子保持最新状态是关于原始的回购:您需要将您的本地工作建立在所述原始回购的最新图像之上。

通常,在triangular workflow中,原始回购被称为upstream

因此,所有你需要做的是:

git fetch upstream 
git rebase upstream/master 
git push --force 

这将重订上一个更新的upstream/master的顶部当前分支,然后你可以强制推送(前提是你是唯一一个在自己的叉子工作)。

triangular workflow

这是非常不同从pull,因为它没有从上游的分支合并到自己的地方分支机构。
相反,它会重放你在这些分支之上的lcoal工作,以确保将来的pull请求可以接受回原始repo(快进合并,因为你只发布最新状态之上的新提交的上游主分支)

+0

这个和简单的'git pull'有什么区别? –

+0

@SamuelShifterovich我已经更新了答案。 – VonC

+0

正是我在找的东西(请参阅我的答案中的第一点)。非常感谢。公认。 –

1

您可以使用git pull从远程获取最新更改以及在本地合并这些更改。这将为您提供当前分支的最新版本。这应该足以让您的分支分支保持最新状态。

通过简单地做一个git fetch你只需要更新你的远程跟踪分支新的变化。如果您想在本地查看新的更改,则必须实施合并命令。