Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 在分支之间合并大型更改的提示_Git_Version Control_Refactoring - Fatal编程技术网

Git 在分支之间合并大型更改的提示

Git 在分支之间合并大型更改的提示,git,version-control,refactoring,Git,Version Control,Refactoring,为了学习Doxygen,我创建了一个分支并修改了 缓慢移动项目的源文件注释。然而, 那个项目后来有了很大的变化,分裂了 将大文件转换为几个较小的文件: big_file.c -> big_file.c file_a.[ch] file_b.[ch] 我想在我的分行也这样做。显然,我可以 将我的分支的大文件.c复制为文件[ch]等。 手动合并,删除不相关的部分。 然而,我想知道是否有更少的错误倾向 方法。在某些情况下,git merge可以自动跟踪这些变化。我建议在做任何复杂的事情之前,先

为了学习Doxygen,我创建了一个分支并修改了 缓慢移动项目的源文件注释。然而, 那个项目后来有了很大的变化,分裂了 将大文件转换为几个较小的文件:

big_file.c -> big_file.c file_a.[ch] file_b.[ch]
我想在我的分行也这样做。显然,我可以 将我的分支的大文件.c复制为文件[ch]等。 手动合并,删除不相关的部分。 然而,我想知道是否有更少的错误倾向
方法。在某些情况下,git merge可以自动跟踪这些变化。我建议在做任何复杂的事情之前,先尝试直接合并。

这已经有一段时间了,但我合并得相当快,虽然很无聊。为供将来参考,该项目遵循了两个良好做法:

  • 频繁的小动作
  • 只进行了拆分,未添加新功能

我合并到分支中的第一个更改是创建了几个空文件(file_a.[ch],file_b.[ch])。简单合并。第二个变化是剪切粘贴big_file.c中的代码,并将其合并到文件a[ch]。合并很简单,即使有一些冲突。类似地,对于其他变更,直到项目负责人以很少的冲突合并到我的分支中。从那以后,跟踪更改就变得微不足道了。

我尝试过git merge。它确实会将doxygen分支上对big_file.c所做的一些更改传播到新文件_a.c,但会删除其他更改。这是错误的根源;我将不得不重做注释(这些注释分散在整个源代码中,在合并过程中会导致很多不匹配)。