最佳实践git合并两个分支并进行许多更改

最佳实践git合并两个分支并进行许多更改,git,merge,fetch,Git,Merge,Fetch,我们目前正在为一个开源项目开发一个新特性,因此检查了主程序,并在过去的几个月里做了很多更改(>400次提交)。现在我们要将它合并到上游/主版本,以构建最终版本 我们现在面临的问题是,与上游master合并的最佳方式是什么 $git取回上游 $git合并上游/主 或 $git上游/主基地再基地 或者像git pull这样不同的东西 主要目标应该是必须多次更改内容。我不建议使用git pullfetch然后是merge或rebase通常更安全,因为您可以通过比较master和origin/maste

我们目前正在为一个开源项目开发一个新特性,因此检查了主程序,并在过去的几个月里做了很多更改(>400次提交)。现在我们要将它合并到上游/主版本,以构建最终版本

我们现在面临的问题是,与上游master合并的最佳方式是什么

$git取回上游

$git合并上游/主

$git上游/主基地再基地

或者像git pull这样不同的东西


主要目标应该是必须多次更改内容。

我不建议使用
git pull
fetch
然后是
merge
rebase
通常更安全,因为您可以通过比较
master
origin/master
预览接下来会发生什么

使用
merge
rebase
的决定可能不是您自己的决定。上游存储库是否有贡献指南?如果是这样的话,你应该遵循这些原则

如果上游存储库没有贡献指导原则,则
合并
重设基础
可能是合适的

但基于此,

我们目前正在为一个开源项目开发一个新特性

据我所知,有多人在使用此功能,因此您的存储库有多个副本。在这种情况下,我强烈建议不要使用
rebase
。这将导致您的提交哈希值发生更改,并可能导致很多困难。一般来说,不要重写共享历史


因此,剩下的是
merge
,这可能就是我在这种情况下所使用的方法。

这是您希望生成的历史的样子,以及您将如何解决累积的冲突--您这边有400个未合并的更改,另一边有多少更改?。这是两个独立的问题。请注意,
git pull
只是运行
git fetch
然后紧接着运行
git merge
git rebase
的一种方便方法。从这个意义上讲,没有区别,但在另一个意义上,有区别:您可能希望git获取,然后查看,然后才决定如何组合(一个大合并,几个小合并,等等)。这将
git pull
变成了一种“不便”,而不是一种便利。