【问题标题】:How to test outcome of git pull?如何测试 git pull 的结果?
【发布时间】:2019-05-30 06:37:17
【问题描述】:

我想测试git pull的结果。

目前我们使用这种部署方式:

git pull && rake build && rake deploy

但是不幸的是,在 pull 是空操作的情况下,它会做很多不必要的工作。

这可以改进吗?

【问题讨论】:

  • 您能否添加一些详细信息来描述您想要的结果?拉是无操作是什么意思?如果git pull判断当前分支是最新的,那么它仍然会成功并返回0,因为没有发生错误。
  • 现在正在搜索文档,但我的想法是 git pull 实际上是 git fetch && git merge。也许做一个git fetch 然后比较分支masterorigin/master
  • @Code-Apprentice OP 想知道在git pull 之后是否有任何改变。
  • @PhilipCouling 这也是我的工作假设。但是,在 OP 澄清之前,我们只是猜测。
  • 使用 CI 工具对部署作业所做的通常是连接到存储库并触发作业,以防存储库发生变化。

标签: git zsh


【解决方案1】:

基本上你可以做两件事。您可以解释输出,也可以询问是否有任何变化。

您还没有指定您的 shell(windows 或 bash 之类的 unix shell),所以我不能给出示例代码。但如果没有任何变化,git pull 将打印Already up-to-date.。因此,如果发生这种情况,请跳过构建和部署。

第二个选项是在使用前后检查你的提交号:

git rev-list -n 1 HEAD

如果这发生了变化,那么 pull 做了什么,如果没有,那么它没有

【讨论】:

  • 谢谢,好主意。所以现在我们使用git pull|grep -v Already&&rake build deploy
【解决方案2】:

使用git log -1 --pretty=format:%H 获取提交哈希beforeafter git pull

比较两个哈希并在它们不同时开始构建。

【讨论】:

    猜你喜欢
    • 2013-12-05
    • 2020-03-14
    • 2018-11-08
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 2020-03-25
    • 2016-09-01
    • 2021-11-17
    相关资源
    最近更新 更多