有时我最终会得到一个有很多更改的工作树,主要是在匆忙编码之后 - 更改如此之多,可以容纳 20 次提交,分布在 2 或 3 个分支中。为了清理工作树并很好地提交所有内容,我遵循了这个令人不快的工作流程:
用于
git add -p
检查工作树中的所有块,而不将任何内容保存到索引中(即对每个块回答“不,不要暂存这个”)。同时,我尝试在心理上将这些帅哥分组为提交,并记下一些我应该用我看到的帅哥构建的提交的笔记(在文本文件中)。在我将每个大块分配给一个提交之后(在我的笔记中),然后我重新开始
git add -p
,并且只对进入第一个提交的大块回答“是的,暂存这个”。在检查了所有的帅哥并挑选了我想要的之后,我实际上做了提交。只要有大块留在第 2 步重复
git add -p
。这意味着对于我在笔记中的每一次提交,我都会仔细检查所有内容。
这显然是一次处理许多变化的一种非常愚蠢的方式。有没有一种好方法可以从许多更改开始,将它们整理出来,然后在它们的正确分支中以一组不错的提交结束?
也许有一种方法可以在多个索引中同时增量构建多个提交。或者也许我应该将所有更改提交到一个大提交中,然后以某种方式将其拆分为多个?或者也许有一种方法可以(ab)使用git stash
来帮助将更改组合在一起?