首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在签出钩子中更新和提交文件,我是否应该这样做?

如何在签出钩子中更新和提交文件,我是否应该这样做?
EN

Stack Overflow用户
提问于 2016-10-12 16:17:03
回答 1查看 35关注 0票数 0

一些背景:

我和CI系统有矛盾,因为它们是在拉请求时触发的,而不是在目标分支更新时触发的。

考虑两个没有合并冲突的拉请求,但它们之间存在逻辑冲突。每个测试都通过了CI push & pr测试。

第一个被合并为主人。现在,将第二个与主程序合并将导致一个逻辑问题。但是,没有合并冲突,CI状态表明我们可以继续,因为测试是在旧代码上运行的。

总之,它看起来很好,但却很糟糕。

我对修复程序的想法:

强迫冲突。在off母版的任何分支上,都有一个git-checkout钩子更新一个时间戳文件.现在,如果是下一次合并,时间戳可以合并到主服务器中,但它将与其他工作人员发生冲突。

现在,一个没有冲突并且通过CI构建的分支可以很好地运行。听起来对吗?

要求:

我需要一个钩子,更新时间戳文件,并在本地提交它的任何分支的主人。我该怎么做?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-10-12 18:51:21

这是一个脚本,似乎做了正确的事情。它还没有经过彻底的测试。

代码语言:javascript
复制
#!/bin/sh

# https://git-blame.blogspot.ca/2013/06/checking-current-branch-programatically.html
if BRANCH=$(git symbolic-ref --short -q HEAD)
then
  ON_BRANCH=true
else
  ON_BRANCH=false
fi

MASTER_SHA=`git show-ref --heads -s master`
PREV_SHA=$1
CURRENT_SHA=$2
WAS_CHECKOUT=$3

if [ "$WAS_CHECKOUT" == "1" ] && [ "$MASTER_SHA" == "$CURRENT_SHA" ] && $ON_BRANCH && [ "$BRANCH" != "master" ];
then
  STAMP="$(git rev-parse --show-toplevel)/.stamp"
  echo "$(date +%Y-%m-%d:%H:%M:%S) - $(git config user.name)" >| "$STAMP"
  git add "$STAMP"
  git commit -m "auto stamp update"
fi
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40003498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档