Git提交样式:一次更改所有文件或一次更改一个文件?

loo*_*oop 11 git version-control git-commit

我通过一次提交许多文件来保存我的工作.我想知道为每个文件提交是否会更好,但这看起来好多了.

我对现在的方式没有任何问题,但我打算将我的代码放在GitHub上,我希望它易于理解.

我想知道你们其他人使用git是做什么的.如果你能为我拼出来的话.我是Git的新手,我一直在Windows中使用TortoiseGit和gitk.

Nay*_*uki 18

何时提交以及提交什么是艺术,并且没有黑白规则.话虽这么说,有些习惯比其他习惯更容易理解.

一般来说,我认为你应该优化你的可提交性提交 - 如果你回去阅读提交的差异,你能弄清楚你在变化中完成了什么吗?

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

  • 每次更改后都不要提交 - 每行更改,每个文件都更改等.
  • 不要工作一整天,并在一天结束时做一个巨大的承诺.
  • 针对不同的功能单独提交 - 例如开发功能foo和修复bug#2.
  • 为移动/重命名文件做单独的提交,因为Git更容易跟踪这种方式.
  • 是否考虑优化可回复性:如果您不喜欢自己做出的更改,即使新的更改堆积在顶部之后,是否也很容易撤消?

  • +1特别是版本控制的概念作为录制机制,以便您可以撤消个别更改. (2认同)

Von*_*onC 10

"易于理解"也意味着:

  • 提交不仅仅代表"checkpoint"(就像你们在每次修改文件后提交的那样),但代码的连贯状态
  • 容易git bisect(即每个提交应该代表一个任务的变化,它编译并添加一个演化或一个新特征,而不是一个"检查点提交",这将使得git bisect失败的方式太快)

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

  • 私人分支(你永远不会推送),你可以随时提交,以及
  • 公共分支(你将推送GitHub),需要清理并提交有意义的提交.

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

  • 你能解释检查点提交的内容吗? (2认同)