如何在Mac OSX中自动化git提交

时间:2015-01-12 20:40:12

标签: macos git bitbucket sublimetext sublimetext3

我正在使用sublime txt编辑器为我的所有开发项目编写代码和源代码树,并且我经常在一天结束时提交我的更改并将它们推送到远程存储库,有时甚至更频繁但我尝试执行在每个工作日结束时。

有时候,我忘了承诺并推动。

是否可以在我设定的时间和时间段以某种方式自动执行此操作?

1 个答案:

答案 0 :(得分:5)

不要这样做。

版本控制不是备份系统。如果您需要备份系统,请使用一个。有许多免费的自动在线备份服务可供选择。一个简单的技巧是将项目文件放在Dropbox文件夹等中。

git中的提交是关于创建更改原因的记录。对于试图在将来理解您的代码的其他人(在六个月内可能是您),它必须是有用的。在它最基本的层面上,它必须回答“为什么这个代码以这种方式编写?”的问题。当您完成单个逻辑更改时,应该完成提交。修复了一个错误,添加了一个功能,更改了一个名称,等等。这会将更改拆分为易于查看的块,并且可以轻松描述您已完成的操作。如果提交只是你今天所做的一切,那对任何人都没有帮助。如果您记录当天所做的所有事情,那么提交将会过大,包含多项更改,并且很难确定哪些代码会随着更改而变化。

作为上次代码工作的检查点,提交也非常有用。如果您只在所有测试通过时提交,则调试会更容易。什么打破了代码? git diff中的某些内容。如果你只是在一天结束时提交,你可能会提交破坏的代码。然后你失去了这种非常强大的调试技术。

Git有一个更强大的调试工具bisect。它可以自动找到导致错误的提交。它依赖于每个提交都在运行代码的想法。

在一天结束时的习惯性推动甚至更糟。如果您的代码尚未准备好与他人共享,请不要推送它。

与Subversion不同,Git故意将提交和推送的概念分开。推动是在分享你的工作。即使在分支中,避免破坏代码也是非常重要的。项目中的其他人(包括未来的人)应该合理地期望他们所使用的代码可以工作。然后他们知道任何失败都是合并的错误。如果您始终不得不质疑共享存储库中的代码是否有效,那么它会大大减慢工作量。如果您推送损坏的代码,则推送对其他人施加您的工作。

你可能会说“我一个人工作”。这是一个非常糟糕的习惯。你不会一直独自工作。或者,如果你这样工作,也许你会!从现在起几个月或几年后你会看到你的代码,你就不会记得为什么你这样写了。

此规则有一个小例外。持续集成服务(例如Travis)要求您推送代码来测试它。也就是说,您仍然提交逻辑更改,并且仍然运行本地测试。