Ste*_*ies 3 git mercurial dvcs
将干净的代码推送到主分支的最佳实践是什么?
这是关于Mercurial的最佳实践问题,但是其他DVCS / git用户的想法也将适用。如果有合适的网站,请指向我。
具有大量贡献者的大型项目如何使主要开发部门保持清洁?
我拉从中央存储库的源代码的副本,然后进行使用分支,标签,实验的代码并提交当地合并,直到一切都进行了测试和作品的局部变化一堆。
现在,我进行最后一次提交,并将所做的更改推回主干-这会将本地更改的完整历史记录发送到中央服务器。
从概念上讲,这很好,但是这意味着执行最终构建的主管可以看到我所有的实验和错误代码朝着最终测试版本运行。
是否有最佳实践来简化我的推送,使其仅包含干净的代码?我有责任清理我的代码(带有折叠或其他扩展名),还是主管选择清理位并将其复制到“最终发布”存储库中?
非常感谢您的帮助,
史蒂夫
=======================
答:我已经接受了下面的Tims答案,尤其是他给出的有关github的链接[ github.com/git/git/blob/master/Documentation/SubmittingPatches ]。因此,可以-在将提交提交到中央存储库之前清理您的提交!
首先,您需要与主管讨论项目的预期工作流程。以下一般建议在大多数情况下应该是好的,但是您的项目可能有理由做不同的事情。
通常,您应努力使存储库的已发布历史记录尽可能整洁。清洁度可以通过以下方式判断:
bisect
)在所有DVCS中,都有本地与已发布历史的概念。在大多数工作流中,变更集一旦被推送到其他人已经克隆的公共存储库中,就被视为已发布。
关于编辑回购记录的历史,有两个基本规则:
一旦发布了变更集,就不应修改历史记录。这意味着仅推送准备好发布的变更集很重要。用Mercurial的术语来说,不要hg push
全部更改您的支出。而是使用hg push -b <branch>
或hg push -r <rev>
对特定更改执行有针对性的推送。请参阅EditingHistory
Mercurial Wiki上的更多具体推理和建议。
在发布变更集之前(即,当它们在本地时),您可以根据需要随意修改,重新设置基础,折叠等,以创建“干净的”历史记录。在git中,这是使用git commit --amend
或完成的git rebase
。水银有扩展,例如queues (mq)
,histedit
和collapse
。
在大多数项目中,开发人员应先清理自己的代码,然后再提交代码进行检查和/或发布。这样可以避免审阅者/集成者浪费时间进行繁琐的工作。
归档时间: |
|
查看次数: |
807 次 |
最近记录: |