Git 提交风格:一次更改所有文件还是一次更改一个文件?
我在晚上通过一次提交来保存许多文件的工作。我想知道为每个文件提交是否会更好,但这似乎需要更多工作。
我对现在的情况没有任何问题,但我计划将我的代码放在 GitHub 上,并且我希望它易于理解。
我想知道其他使用 git 的人在做什么。另外,如果你能为我拼写出来的话。我是 Git 新手,一直在 Windows 中使用 TortoiseGit 和 gitk。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
何时承诺以及承诺什么是一门艺术,没有非黑即白的规则。话虽如此,有些习惯比其他习惯更容易理解。
一般来说,我认为你应该优化你的提交以使其易于理解 - 如果你返回并阅读提交的差异,你能弄清楚你在更改中完成了什么吗?
如果你想更具体,这里有一个长长的列表,列出了我认为应该做和不应该做的事情:
When to commit and what to commit is an art, and there are no black-and-white rules. That being said, there are habits that are easier to understand than others.
In general, I think you should optimize your commits for understandability - if you go back and read the diff for the commit, can you figure out what you accomplished in the changes?
If you want to be more specific, here's a long list of what I think are do's and don'ts:
“易于理解”还意味着:
git bisect
(即每次提交应代表任务中的更改,它编译并添加一个演变或新功能,而不是“检查点提交”,这会使 git bisect 很快失败)请参阅“了解 Git 工作流程" 了解更多信息:您需要区分:
因此请注意“快进” Git 默认使用的合并:不要忘记清理要以这种方式合并到公共分支的分支的历史记录。
"Easy to understand" means also:
git bisect
(ie each commit should represent a change in a task, which compiles and add an evolution or a new feature, and not a "checkpoint commit", which would make thegit bisect
fails way too soon)See "understanding the Git workflow" for more: you need to differentiate:
So pay attention to the "fast-forward" merge that Git uses by default: don't forget to clean-up the history of branches you are about to merge that way into public branches.