git提交频率

因为我从svn切换到git,我开始做更多的提交每次我重新编译和我的testing通过我提交我的工作。 最后,我终于实现了function的function。

我也跟踪一些其他项目使用git像emacs,wordpress等我看到,他们不经常犯。 所以我想知道你怎么做?

Git项目本身(和Linux项目,AFAIK)的指导原则是每个“逻辑上独立的变更集”的提交。

这有点含糊不清,但是如果你不断地在一个项目上工作,你可能不想每隔几天就提交一次,而且你可能不希望在每次function改变之后提交 – 如果你已经编辑了几个函数几个不同的文件,如果可以的话,你想一起提交所有相关的function,并提供一个有用的提交信息。 所有在每个提交中修改的代码都应该是相关的,但它可以(也可能应该)确实跨越几个文件。

你可能想要记住的是代码评论。 如果有人试图决定是否应该合并你的工作,那么如果每个提交都是逻辑上包含的,并且彼此分离的话,那么他们处理引入的工作就容易得多。 这可以让你(或者其他人)有效地select樱桃 – 如果你有三个提交,每个提交一个函数,但是它们都以某种方式耦合在一起 – 你不能在没有其他两个的情况下应用一个,被压扁到一个承诺。

我也跟踪一些其他项目使用git像emacs,wordpress等我看到,他们不经常犯。

git的好处之一就是你可以随心所欲地提交,然后当你想做一个上游提交时,你可以用git-rebase几个相关的提交压缩成一个很好的干净的提交。

最后,我终于实现了function的function

不要忘记,你可以宁可“functiongit add ”function,只做一个提交:

  • 一旦所有的function被写入或固定为一个给定的任务
  • 或者一旦意识到当前的函数太大/太复杂了,不能很快成为提交的一部分:然后你可以提交当前“在舞台上”(“git added”)的内容,这将不包含你当前的修改目录。

然后,提交的数量可以与分支的目的有关:

  • 本地分支:发疯,随时随地提交
  • “公共”分支(你会推一个):
    • 对于本地存储库(对于选定的一组人员):您可以重新组织至less很小的“中间”提交
    • 对于公共存储库(对于所有开发人员或其他项目来说):您可以创build一个交互式重新分区,以便通过“活动”或“任务”来重新组织您的提交,以使这些提交更具可读性。

简而言之,“ 发布注意事项”可以在D VCS(如“分布式”)中指导您以正确的理由进行适当数量的提交。

你犯的越多越容易findgit bisect的错误

一旦testing通过,或者当一个function单元被添加/删除/修改时。

这真的取决于。

我所做的是我经常在当地提交,因为听起来像你在做什么,但是我只是在我已经积累了一些有影响力的时候才推动我的改变。

这确保了我保存我的工作,但它也不会混淆其他用户的回购。

我们的业务需求是我们在程序编译时对不稳定的分支做出承诺,并在通过unit testing并经过客户审查(处于不稳定分支之下)的情况下提交给稳定分支。

我在添加或更改function并进行成功testing后进行提交。 或者当我要从我的桌面切换到笔记本电脑,并希望拉下代码,我会承诺和推动。

你在做什么听起来对我来说是正确的。 任何时候你有一个工作的设置,你想能够回到,如果你搞砸了是一个很好的时间来提交。 如果你有一个很好的设置,运行回归testing是快速和容易的,我可以看到相当经常。 对我来说,我很幸运能够每周做一个。

我犯了很大的分裂。 git并不是要“备份”你的代码,你应该使用tarball或dropbox或其他东西来确保你不会丢失代码。

如果你不经常提交,你可以更好地确定在提交什么内容时应该做什么,并且给你一个更平滑的历史,

“哎呀”,“该死的”,“忘记那个文件”

你可以重新devise,但是如果你从来没有做过任何事情,那么就不需要撤销你的工作