一个功能请求(tooBigFeature
(已经升级为一个100提交、50文件的PR,在审查结束时,工程部门已经决定需要10个5文件的PR(tinyFeatureChunk-01
、tinyFeatureChunk-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"`
}