12

我在晚上保存我的工作,对许多文件进行一次提交。我想知道为每个文件提交是否会更好,但这似乎需要更多的工作。

我对现在的情况没有任何问题,但我计划将我的代码放在 GitHub 上,我希望它易于理解。

我想知道其他使用 git 的人在做什么。另外,如果你能帮我把它拼出来。我是 Git 新手,我一直在 Windows 中使用 TortoiseGit 和 gitk。

4

2 回答 2

19

何时提交和提交什么是一门艺术,没有非黑即白的规则。话虽如此,有些习惯比其他习惯更容易理解。

一般来说,我认为你应该优化你的提交以提高理解性——如果你回去阅读提交的差异,你能弄清楚你在更改中完成了什么吗?

如果你想更具体一点,这里有一长串我认为应该做和不应该做的事情:

  • 不要在每一个小改动之后提交——每一行都改变了,每个文件都改变了,等等。
  • 不要工作一整天,然后在一天结束时做出一个巨大的承诺。
  • 将不同功能的提交分开 - 例如开发功能 foo 与修复错误 #2。
  • 为移动/重命名文件做一个单独的提交,因为 Git 更容易跟踪这种方式。
  • 考虑优化可恢复性:如果您不喜欢所做的更改,即使在新的更改堆积在上面之后,是否也很容易撤消它?
于 2011-09-15T04:08:57.033 回答
11

“易于理解”还意味着:

  • 提交不仅代表“检查点”(就像您在每次文件修改后提交一样),而且代表代码的连贯状态
  • 容易git bisect(即每次提交都应该代表任务中的更改,它编译并添加进化或新功能,而不是“检查点提交”,这会使git bisect失败过快)

有关更多信息,请参阅“了解 Git 工作流程”:您需要区分:

  • 私有分支(你从不推送),基本上可以随时提交,以及
  • 公共分支(您将在 GitHub 上推送),需要清理并具有有意义的提交。

因此,请注意Git 默认使用的“快进”合并:不要忘记清理您即将以这种方式合并到公共分支中的分支的历史记录。

于 2011-09-15T04:11:23.947 回答