3

我通过将主分支与我的功能分支合并遇到了问题。因此,我试图了解 git 如何处理合并以及使用 master 分支的更改更新功能分支的最佳方法是什么。我找到了 2 个解决方案。

1号:

git checkout feature_branch
git merge master

2号:

git checkout feature_branch
git pull origin master // Read: pull the changes from origin/master into my current local branch 'feature_branch'

我只读过第二个解决方案一次,而第一个解决方案经常出现在我的眼前。由于git merge总是以提交完成,所以我更喜欢第二个,但想知道它是否真的按照应有的方式工作。

我将不胜感激。

4

2 回答 2

4

在第一个实例中,您将转到一个功能分支并拉入本地主分支的最新版本。这个版本的 master 可能与跟踪分支(origin/master)是最新的,也可能不是最新的,这取决于最近与远程的交互是普通获取还是拉取(获取和合并)。

在第二种情况下,基本上发生的事情是首先从远程获取主分支并放置在您的“跟踪”分支(源/主)中。然后将该版本合并到您当前的(开发)分支中。

有关 git 进程的更多信息,请参阅git branch、fork、fetch、merge、rebase 和 clone,有什么区别?

于 2012-11-22T03:06:41.370 回答
3

拉取只是合并的提取;在这两个示例中,您都在进行合并,只是第二个示例涉及第二个存储库。我认为他们之间没有太多选择。

如果您的功能分支对您来说是私有的,您可能会考虑将其重新基于 master 的新提示,而不是合并 master 以合并来自 master 的更改。这样,您可以在历史记录中没有合并的情况下拥有您的功能分支跟踪主控。

于 2012-11-21T23:00:48.477 回答