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

时间:2011-09-15 03:29:39

标签: git version-control git-commit

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

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

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

2 个答案:

答案 0 :(得分:18)

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

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

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

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

答案 1 :(得分:10)

“易于理解”也意味着:

  • 提交不仅代表“checkpoint”(就像你们在每次修改文件后提交的那样),而是代码的连贯状态
  • 易于git bisect(即每次提交都应代表任务中的更改,它会编译并添加演变或新功能,而不是“检查点提交”,这将让git bisect太快失败了)

有关详情,请参阅“understanding the Git workflow”:您需要区分:

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

所以要注意"fast-forward" merge that Git uses by default:不要忘记清理你将要合并到公共分支的分支的历史。