git可以不断提交对文件所做的更改吗?

时间:2016-04-06 00:18:52

标签: git ubuntu-14.04

我一直在使用git开发一些相当小的项目,但我经常发现,当我进行大量的小增量更改时,我总是懒得去做。所以,当我转身想要弄清楚我的代码最后一次工作时,我意识到我没有保存提交。我想知道:每次我为我保存一个文件时,有没有办法让git记录提交?我不关心提交消息;我只想记录我的更改 当我搜索这个问题时,我遇到git stashing;它减少了我必须做的工作量,但并没有消除它 任何建议将不胜感激!

1 个答案:

答案 0 :(得分:4)

Git不会自动提交,但如果您愿意,可以设置一个小脚本为您执行:

while sleep 60; do git commit -m 'Working'; done

这将自动提交每60秒发送一次“工作”消息。还有很多像Guard这样的工具可以监视你的文件系统并按照你想要的方式执行某些东西,但我并不担心细节,因为......

现在解决方案已经解决了,让我们谈谈你的问题,因为这不会有帮助。不是没有保存最后一个好的状态,你将有无数的部分状态来查看,没有任何迹象表明你在做什么。也许你会记得在达到里程碑时添加另一个提交,但你只是自动提交,所以没有什么可以承诺标记它(在这种情况下使用git commit --allow-empty),如果你记得这样做,你就不要不需要自动提交。

你真正想要做的就是养成做出小而连贯变化的习惯。这些让你回到以前的状态,但也作为面包屑描述你的未来自我和你可能合作的任何人的思考过程。如果你用每个good commit message写一个,甚至更好。

定期提交的另一个好处是它可以让你将你的工作分解为这些小的可提交块,这些块可以一直回到你设计代码的方式。我们总是听说模块化是好的,单一责任原则是好的;好吧,这是在你的过程中建立更好习惯的具体方法。

您将开始注意到,您的问题不仅可以被分解为良好的提交,而且其中的一部分实际上是完全独立的。可以将它们放在不同的分支上,让您根据需要或需要在它们之间切换,然后将其合并到master或彼此之间。这对于任何查看代码的人都特别有用,因为他们可以一次读取一个功能A和B以及一个错误C,而不是一个巨型集。

给自己一个计时器并让它每5分钟响一次(选择一个感觉非常频繁的时期而不会经常打扰你的思路)。无论什么时候,问问自己是否已完成任务中的一步并提交。因为在叮当你可能已经中途完成了其他事情,熟悉git add --patch,这样你就可以完成已完成的部分,并继续处理非部分部分。你学习和使用Git的次数越多,你的效率就越高,你花在滚动微小变化上的时间就越少。