社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

创建一个Git钩子以防止合并到本地存储库中的特定分支,但允许从远程

chicobaptista • 6 年前 • 1770 次点击  

这可能只是我对Git的误解,但我的情况如下:

我有一个 master 分支,其中我只希望有稳定的工作代码。对这个分支的任何添加都必须来自bitback中的pull请求(可能是github或其他东西,它只是我们使用的工具)。所以我想在本地存储库中创建一个Git钩子,以防止任何合并到 主人 分支,但这也允许我从位于BitBucket的远程存储库中获取/提取更改。

我已经将Git配置为不允许快进合并。

我研究了这些解决方案,它们提供了类似的东西,也就是说,可以/不能合并到master中的分支的白名单和黑名单:

Git hook prevent merging specific branch

https://bl.ocks.org/slattery/5eea0d6ca64687ecba6b

此外,此解决方案还阻止我直接提交给master,这也非常有用:

Git: Prevent commits in master branch

但是,我不清楚这些是否会阻止我将bitback/github中的pull请求所做的更改拉入到本地工作存储库中。

多谢!

[编辑] 正如下面建议的,我也已经设置了 branch permissions 在我的BitBucket回购中,但这只会阻止我推合并 主人 树枝。我想阻止合并到 主人 而是在本地。

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

我喜欢你的想法,但是我认为你应该尝试保护你的远程主机,然后让你的开发人员在各自的主题分支中创建他们的代码,而不是在他们本地的主分支中。

试试看Git的这些用法: microsoft git usage

tymtam
Reply   •   2 楼
tymtam    6 年前

所以我想创建一个Git钩子 我的 地方的 防止任何合并到主分支(…)的存储库。

你在保护你的 地方的 master 分支从何而来?你自己?

无论如何,解决方案是设置bitbackrepo,这样您就不能将更改推送到 主人 . 这意味着,即使您在本地搞砸了事情,您也无法将更改推送到远程,它们必须通过拉请求完成。

BitBucket分支权限解释见 Using branch permissions .

VonC
Reply   •   3 楼
VonC    6 年前

我不清楚这些是否会阻止我将bitback/github中的pull请求所做的更改拉入本地工作存储库。

不,只要:

  • 你从另一个分支而不是师父
  • 或者你确实从 origin/master 到您的本地主机,但检测到“源”分支是一个源/XXX分支(在这种情况下,您允许继续提交)

任何问题 client-side hooks 然后您需要将这个钩子部署/分发给您的所有团队成员。