如何测试git pull的结果?

3
我想测试 git pull 的结果。
目前我们使用这种部署方法:
git pull && rake build && rake deploy

然而,如果拉取操作是无操作,则它会执行许多不必要的工作。这能否得到改进?

@Code-Apprentice OP 想要找出在进行 git pull 后是否有什么东西发生/改变。 - Philip Couling
使用CI工具进行部署作业时通常会连接到存储库,并在存储库发生更改的情况下触发作业。 - Matt
@Code-Apprentice,感谢你关于逻辑方面的课程。我想你是指归纳,而不是演绎。 - Philip Couling
我唯一看到的问题是先运行 git fetch 的假设是 master 已经被检出。将当前分支与远程跟踪分支进行比较似乎是预测 git pull 是否会实际更改当前分支的非常好的方法。 - chepner
显示剩余5条评论
2个回答

3

基本上有两件事情可以做。您可以解释输出,也可以询问是否发生了任何更改。

您没有指定您的 shell(Windows 还是像 bash 这样的 Unix shell),因此我无法提供示例代码。但是,如果没有更改,则 git pull 将打印 Already up-to-date.。所以如果发生这种情况,请跳过构建和部署。

第二个选项是在使用以下命令之前和之后检查您的提交编号:

git rev-list -n 1 HEAD

如果发生了变化,那么拉取操作就有所作为;如果没有变化,那么拉取操作就没有产生任何影响。

谢谢,好主意。所以现在我们使用 git pull|grep -v Already&&rake build deploy - William Entriken

1
使用 git log -1 --pretty=format:%H 命令获取在执行 git pull 前后的提交哈希值。
比较这两个哈希值,当它们不同时开始构建。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接