使用git和单独的分支进行协作,而无需添加一堆冗余提交

时间:2012-03-02 18:29:45

标签: git github collaboration git-workflow

我正在与一位设计师合作开展名为“验证帐户”的项目

我正在开发一个名为verified_accounts的分支,设计师位于名为chris_verified_accounts的分支上。我们定期合并彼此的更改,项目完成后我们会将verified_accounts合并到master

但是,所有这些合并都导致了一堆垃圾/重复提交。例如:

http://dl.dropbox.com/u/2792776/screenshots/2012-03-02_1024.png

Commit(1)是仅包含commit(2)的pull请求的合并。这意味着这些提交基本相同(它们具有相同的差异等)。同样,commit(3)是仅合并commit(4)的合并,意味着3和4也基本相同

管理这些相同提交的最佳方法是什么?即,对于我的代码中的每个功能更改,我想要一个关联的提交。这样,如果我正在评论变更集,我可以肯定我正在评论正确的位置(而不是评论另一个dupe-y提交的完全相似的变更集)

这种事情的最佳做法是什么?

2 个答案:

答案 0 :(得分:3)

由于您合并后会得到合并提交,这在合并分支时是不可避免的。你可以做的是同时拉动和变换:

git pull --rebase

答案 1 :(得分:2)

最佳做法是将这些提交看作是什么:合并提交。没有简单的“重复提交”。(事实上,它们根本不是重复提交。)它们包含分支合并到另一个分支的信息。当你试图获得一个线性历史(它让我们面对它 - 是一个无法处理分支的系统的残余,特别是以一种理智的方式合并)时,你不可避免地会丢失有关源代码如何形成它的方式的信息。现在。合并提交是项目历史的重要部分,允许您查看哪些提交属于哪个分支在哪个时间点。它允许您在编写完成后跟踪每个分支。如果提交中有任何可疑内容,您可以使用该上下文信息重新理解为什么这样做。

请不要通过尝试在某些可视化工具中使其看起来很好而人为地阻塞您的存储库。尝试利用分支和合并的全部功能。

(是的,我喜欢Git。和分支。并且合并。)