首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将提交分组,以便在处理多个分支时创建一个简单的类似补丁的工作流。

如何将提交分组,以便在处理多个分支时创建一个简单的类似补丁的工作流。
EN

Stack Overflow用户
提问于 2018-02-07 14:03:51
回答 1查看 132关注 0票数 0

我正在处理本地化,这是一个迭代40多个分支的过程,每个分支都实现了大约40个提交。其中一些(比方说一半),几乎对所有的分支都是完全一样的。因此,我开始将提交ID (比如085cfefc9291b)复制到记事本中,然后当我希望在我的当前分支上实现这些更改时,我会从列表中选择。

我为 cherry-pick (前)提交的列表。git cherry-pick 290d953c2837):

  • 290d953c2837 ->更新产品矩阵(2017-02),
  • 9ee8c001165e6 ->成果和利益的联合化(2017-02)
  • 13156cee10d ->实现产品范围的双后端/前端
  • 80c98c492 ->肘管后端过滤
  • 15106bdc
  • 085cfefc9291b ->从前端排除产品范围

这些提交来自同一个存储库的不同分支。

一些非常适合我的工作流程的东西,可以将这些提交绑定/压缩成一个提交。这将使我能够动态地创建整个过程中的修补程序,如果我保留了长长的单独的通信列表,我可以很容易地创建不同版本的修补程序,其中一些版本中提交的更多,有些版本更少。

你知道这方面的最佳做法是什么?

EN

回答 1

Stack Overflow用户

发布于 2018-02-07 17:59:05

  1. 根据正确的提交创建分支。
  2. 将提交的子集应用于该分支。
  3. 将这些更改压缩为一次提交。

假设您有一组提交{A,B,C,D,E,F,G}和一个基本提交Z。压缩A B C F的过程类似于:

代码语言:javascript
运行
复制
#create a branch patch1 from Z
git checkout -b patch1 Z
#apply A B C F
git cherry-pick A B C F
#squash them into one commit
git reset Z --soft
git commit -m 'squash A B C F'
#create a patch of the new commit if necessary
git format-patch -1

这只是创建这样一个组合提交的可能方法之一。很难决定哪一次提交才是合适的基础。

另一种方法:

代码语言:javascript
运行
复制
#create a branch patch1 from G
git branch patch1 G
#rebase and squash A B C F onto Z
git rebase -i --onto Z A^..patch1
#in the editor
  pick A
  squash B
  squash C
  squash F
#create a patch of the new commit if necessary
git format-patch -1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48665816

复制
相关文章

相似问题

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