git push之前自动编译验证

git push代码到远程仓库中会遇到这样的情况,你以为是一个很简单的提交,没经过编译就提交到了远程仓库,然而意想不到的事情发生了,远程仓库编译失败。这时候就需要你重新修改提交,重新修改,耽误时间,而且还有可能造成损失。

怎么办呢,提交之前先自己编译一下就可以解决问题。这样很好,可是不是每次都会记得,特别是比较紧急的时候可能就不会去编译验证了。这时候就想到git钩子脚本,git钩子脚本可以在执行一些动作之前执行一个脚本,做一些固定的或者验证性质的工作,是不是也可以用来在push代码到远程仓库的时候执行编译命令,下面是git仓库钩子脚本目录下面默认的一下脚本样例:


hooks目录下的钩子脚本样例

我们看到有这样一个样例 `pre-push.sample`,看名字可以知道这就是我们要找的在push前执行的脚本,看到了希望。首先把扩展名去掉,文件名变成`pre-push`,内容做了简单的修改,把样子中的命令替换成项目的编译命令,就变成了这样:

```

#!/bin/sh

./gradlew assembleInternalDebug > /dev/null 2>&1

exit $?

```

这里是android项目,所以调用的时gradlew命令,可以替换成别的编译命令,最后需要返回命令结果`exit $?`,如果返回0,则push命令执行,否则不执行。这样以来push代码就放心多了,push上去的必然是编译通过的。

虽然放心了,但是名词push的时间边长了,因为每次push之前都要执行一次编译,但是为了不把无法编译通过的代码提交到远程仓库,多花一些编译时间是值得的,这样也可以变相使自己更加仔细。如果对代码非常有自信也可以通过添加参数`--no-verify`就可以disable验证命令,如:`git push origin --no-verify`

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,721评论 9 163
  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,591评论 0 13
  • Git教程 一、Git简介 1.1. Git的诞生1.2.集中式的vs分布式 二、安装Git 三、创建版本库 四、...
    曹渊说创业阅读 965评论 0 2
  • 经过了背叛、原谅、背叛、离婚的过程,在这一年,我过的虽然不好,但是,我还是感激生活对我的磨练,感谢生活给我这样的...
    longlong8612009阅读 126评论 0 2
  • 【周检视】2018.5.27石家庄在家里 易效能-201期-I组-牛晓倩 没有反思的人生不值得过-苏格拉底 #周检...
    牛晓倩阅读 150评论 0 0