4

我在一个正在成长并使用 git 的团队中工作。我们通常在自己的分支机构工作。

我从另一个工作人员存储库中提取了一些更改。他的更改最终被添加到并合并到一个带有壁球提交的主分支中。

当我尝试从 master 获取并合并时,我遇到了很多冲突。我认为这是因为壁球合并以及它会混淆合并跟踪的事实。有没有简单的方法可以解决这个问题?

第二。如果开发人员正在处理多个分支,并且在进入 master 之前可能需要彼此更改,那么有一种方法可以在继续在 master 上进行壁球提交的同时处理这个问题。

Rebase 被提及很多。但是我看不出这将如何与多个根分支一起使用?

4

2 回答 2

3

是的,挤压会对重复合并造成严重破坏。最好的建议是不要挤压——特别是不要挤压公开的东西。在与他人共享之前重写您自己的提交,但一旦共享,它们应该保持原样,并定期合并提交。

您仍然可以通过使用将合并分支的日志git log --first-parent压缩到仅合并提交来获得合理的日志输出,同时保持实际历史记录不变。

于 2011-06-27T16:41:25.803 回答
2

我要补充一点,压缩只会在分支公开时造成破坏,如果开发人员在本地工作的分支上提交混乱,例如“哦,太糟糕了,又打破了这个”,然后是“它有效!” 然后是“该死的又坏了”,然后是“好的,现在就修复它”,很容易将这些(在它们被推送到远程仓库或共享之前)压缩到一个提交中,并带有关于代码中发生了什么变化的好消息。

一旦推送到远程仓库,这看起来与没有 squash 创建的单个普通提交相同,就好像开发人员正在与天使一起编程,确保他所做的一切都是完美的,然后开发人员可以在本地自由使用 git 进行增量更改,这我发现对于找出我最近在代码中破坏的内容很有用。

我的看法:壁球是本地工作流程的绝佳工具,即一个开发人员。一旦提交被共享,它就永远不应该被压扁。

于 2011-08-02T21:49:47.423 回答