Py学习  »  Git

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

chicobaptista • 7 年前 • 2192 次点击  

这可能只是我对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
文章 [ 3 ]  |  最新文章 7 年前
serup
Reply   •   1 楼
serup    7 年前

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

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

tymtam
Reply   •   2 楼
tymtam    7 年前

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

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

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

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

VonC
Reply   •   3 楼
VonC    7 年前

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

不,只要:

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

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