首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过将大型git提交拆分为主分支上的小提交来合并大型git提交

通过将大型git提交拆分为主分支上的小提交来合并大型git提交
EN

Stack Overflow用户
提问于 2016-05-14 12:51:36
回答 2查看 1.1K关注 0票数 2

我在git中有一个分支,它可以很干净地应用于主人。它包含一个包含10个特性的提交,这些特性将清晰地应用于掌握。但是我想把这些变化合并成基于主功能的。特性更改并不在文件级别(因此,一个更改文件可能包含对2-3特性的更改,但它们可以很容易地拆分)。但是,对整个文件内容的任何合并策略都会失败,因此,它更像文件1中的第10-20行和文件中的第70-80行,以及文件3中的第100行。有没有哪种编辑

  • 请允许我挑出大承诺中的台词。
  • 请允许我将选定的行合并成一个小的提交给师父。

是否有任何工具(链)可以在视觉上支持这种工作流?

EN

回答 2

Stack Overflow用户

发布于 2016-05-14 13:38:00

考虑到您希望将零敲碎打地合并到master中的工作是在一个非master all-in-one分支上进行的,我建议首先拆分all-in-one提交,然后一次合并一个较小的提交到master。这样,与在补丁中合并不同,您的Git历史记录将能够跟踪更改的来源。

要做到这一点,有多种方法。一种方法是从与您的piecemeal分支相同的起点创建第二个master分支,将all-in-one合并到piecemeal分支而不提交,取消任何阶段性的更改,然后开始将未执行的工作分解为对piecemeal的更小的提交。

为了在视觉上帮助将未完成的工作分解为多个提交,git add --patch .允许您将当前未分阶段的“大块头”代码分阶段(或不)到控制台中的Git索引。

git gui提供了一种图形化的方法来进行同样的操作:选择“未分阶段的文件”,右键单击“文件”部分,单击“Stage Hunk For Commit”。有关逐阶段图片和更多详细信息,请参见http://www.adamfranco.com/2009/01/13/git-tip-of-the-day-stage-hunks/

票数 3
EN

Stack Overflow用户

发布于 2016-05-14 15:08:16

假设分支类似于-A-B,并且希望将B拆分为多个提交。

代码语言:javascript
复制
git reset A
git add some_file -p
git commit
git add some_file -p
git commit
...

参考:加法查看编辑补丁部分并试一试

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37226897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档