我真的相信,在一个问题上做出一个承诺是一个很好的做法。我确信我在“最佳实践”这样的文章中的某个地方阅读过它。git commit的做法更好吗?
因此,我的工作流程一直是以下几点:
- 对于一个新的问题,我创建
git checkout -b new-issue
新的本地分支。 - 将所有更改提交给它。有时这涉及提交的批次。
- 完成后,我将
squash
的提交和rebase
它们转换为当前的专题分支。 - 如果出现问题,我可以
git revert
提交,找到bug,修复它,然后在专题分支中提交新补丁。我不会更改远程存储库的历史记录。今天
不过,我很惊讶地听到下面的工作流程:
- 新问题,创建新的分支。
- 承诺一切。
- 使用
merge --no-ff
合并问题分支与专题分支(所以我们将有“合并承诺”,我们可以revert
)。 - 如果出现问题,我们可以使用
git bisect
来查找错误。
如第一的方针,我们将有一个干净的git的历史,并没有关于开发过程中使用开销分支机构的想法。
根据第二种方法,我们将有一个非常混乱的历史,有很多丑陋的,不必要的合并和提交只是一个问题。但是,我们可以使用git bisect
来查找错误。 (也许这是重构更好?)
你看到这两种方法有什么利弊?
您使用哪种方法,为什么?
实际上,您是否真的使用过
git bisect
来查找错误? (我没有...)
您可以使用'git log'的' - first-parent'选项隐藏合并分支上的单个提交。一点都不麻烦。 – Zaz 2014-07-09 15:58:39