避免犯下垃圾行为

您是否曾意外将临时内容推送到远程 git 服务器? 然后继续阅读。

来源:Another Datum
在开发过程中,每个开发人员都会写一些他不打算提交并推送到远程服务器的东西,例如调试打印。我们时不时都会遇到这种情况:我们忘记在提交之前删除这些临时的东西……我使用一种简单的方法解决了这个有点尴尬的情况:在每一行我不想意外提交的代码中,我都添加了魔法字符序列 xxx。这个序列可以位于行的任何部分:在注释中,作为变量名,作为函数名,您可以随意命名。一些使用示例:调试打印:打印'xxx到达此行'。用于调试的变量:xxxCounter = 0。临时函数:def xxxPrintDebugInfo():。提交前必须注意的TODO:#TODO:不要忘记重构此函数xxx。我实现它的方式是使用git hooks,这是git在发生某些重要操作时触发自定义脚本的机制。我使用预提交钩子来验证提交的内容。只需创建一个名为.git/hooks/pre-commit的文件,内容如下:#!/bin/shmarks=xxx,aaa,asdmarksRegex=`echo "($marks)" | sed -r 's/,/|/g'`marksMessage=`echo "$marks" | sed -r 's/,/ or /g'`if git diff --staged | egrep -q "^\+.*$marksRegex"; then echo "您忘记删除包含 $marksMessage 的行。您可以使用 \"commit -n\"" 强制提交 exit 1fimarks 包含不允许提交的字符序列。git diff --staged 显示将要提交的更改。更改通过正则表达式搜索任何禁止标记(使用 egrep)。如果发现禁止标记,脚本将退出并显示错误代码,导致提交失败。如果您想绕过钩子(例如,您想提交可能包含禁止标记的二进制文件(例如图像)),您可以使用 commit -n。
xxx
  • 调试打印:打印“xxx 到达此行”。
  • print 'xxx reached this line'
  • 用于调试的变量:xxxCounter = 0。
  • xxxCounter = 0 def xxxPrintDebugInfo(): #!/bin/sh = = ` |