Py学习  »  Git

如何只从dev和git合并到main?

nowah • 3 年前 • 1431 次点击  

所以我想为我的GitHub回购创建一些规则/限制,根据我所读到的,最好的方法是使用git挂钩。在创建时给我带来困难的限制如下:我想阻止将任何分支合并到master中,但名称或换句话说包含“Release”的分支:仅当它是一个Release分支时才允许合并到master中。我尝试过编写python脚本,但问题是 sys.argv 给了我通往钩子的路( .git/hooks/pre-merge-commit )而不是命令参数,所以我不知道如何从命令行获取输入,以验证它是否是正确的分支

#!/bin/python
import sys, subprocess, re

print('inside script')

mergingBranch='Release'
protectedBranch='master'
 
print(len(sys.argv))

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/130864
 
1431 次点击  
文章 [ 1 ]  |  最新文章 3 年前
LeGEC
Reply   •   1 楼
LeGEC    4 年前

这个 doc about pre-merge-commit 各国(强调我国):

预合并提交

这个钩子由git merge[1]调用,可以通过 --no-verify 选项 它不需要参数 ,并被调用 在合并成功执行之后,以及在获取建议的提交日志消息之前 做出承诺。

因此,您必须查看回购协议的状态才能获得信息:

  • 您可以使用获取活动分支的名称 git rev-parse --abbrev-ref HEAD
  • 据我所知 名称 合并分支的数据不会直接存储在文件中,
    我所知道的最接近的事情是使用:
git branch --points-at MERGE_HEAD
# or use for-each-ref, which has a stabler output for scripts :
git for-each-ref --points-at MERGE_HEAD
git for-each-ref --format="%(refname:lstrip=2)" --points-at MERGE_HEAD

如果你在跑步 git merge Release/feature 从…起 master :

  • 第一个命令应该返回 主人
  • 第二个应该会回来 Release/feature