如何将一个分支从同一根上拆分成几个平行的分支



一个功能请求(tooBigFeature(已经升级为一个100提交、50文件的PR,在审查结束时,工程部门已经决定需要10个5文件的PR(tinyFeatureChunk-01tinyFeatureChunk-02…等(,所有这些都是在我们的主分支chucknorrisbranch(当然,它刚刚被拉入tooBigFeature分支(上的一个常见的单一提交,以便在紧急情况下可以回滚更小的PR。

假设所有更改tooBigFeature在功能上是独立的,并且除了在生产中部分、无错误地降低功能的完整性之外,拆分不会造成任何问题。

我该怎么做?有什么工具可以做到这一点吗?

这似乎是一项很烦人的任务,但有一种方法是

  • git reset chucknorrisbranch让您的所有工作都准备就绪
  • 重复10次:
    • git checkout -b tinyFeatureChunk-0<index> chucknorrisbranch
    • git add <5 files>
    • git commit -m "Some message"

一个可以完成上述操作的快速Ruby脚本可能看起来像这个

`git status --porcelain`.chomp.split("n").each_slice(5).with_index { |lines, index|
`git checkout -b tinyFeatureChunk-0#{index + 1} chucknorrisbranch`
lines.each { |line| `git add #{line[3..]}` }
`git commit -m "some message"`
}

相关内容

  • 没有找到相关文章

最新更新