如何检查git merge是否确实在多仓库bash脚本中进行了合并

时间:2018-12-05 16:24:51

标签: bash git github merge git-merge

因此,我正在编写一个脚本,该脚本从主远程存储库中获取最新标签,并将其与我的自定义更改合并到本地仓库中,并在一个脚本中将其更改为大约10-20个仓库。合并部分看起来像这样:

git fetch -q https://android.googlesource.com/platform/$REPO_PATH $TAG
git merge -q --no-ff FETCH_HEAD
if [ $? -eq 0 ]; then
    echo -e "$REPO_PATH merged succesfully"
else
    echo -e "\n$REPO_PATH has merge conflict(s)\n"
fi

这一点是我想知道哪些所有提交都成功合并(并且需要推送到我的自定义git)。但是有时回购协议已经是最新的(即,远程回购协议中的新标签没有任何新提交),在这种情况下,即使没有真正合并,也会显示“成功合并”消息。

我只想知道所有回购进行了合并并需要推送到我的git,还想知道哪些回购都有合并冲突(尽管在我的脚本中可以正常工作)。我注意到的是,当git进行真正的合并时,它将打开nano询问提交消息。但是我不知道如何使用它来检测合并。预先感谢。

1 个答案:

答案 0 :(得分:3)

开始合并之前,请存储当前分支头的哈希值:

mod4 <- gam(
  data = my_iris,
  formula = list(
    y ~ s(Sepal.Length) + Petal.Length,
      ~ s(Sepal.Length) + Petal.Length),
  family=multinom(K=2))

然后在merge命令运行后再次检查它,如果它们相同,则合并无法完成。

您也可以通过检查状态码来确定状态:

git rev-parse HEAD