【插图】GIT 权限管理
2022年9月7日

最近,自行搭建 Git 服务器,再配合Python监控通知,挺好玩又方便!

搭建时,同事期望 set 分支权限 (Branch Permission);期望公共 master 只能让成员 Pull, 不可 Push;而成员只能 Push 到自己的分支去。不过,我在网上研究了一段时间,只找到一句:“Git does not have branch specific permissions.”。

所以,我改变方向,在 Linux 下,为他们开设专属的帐户,并在其帐户下设置相同的 Git Repository。这样,就能限制成员只能 Pull 公共和别人的分支,而不能 Push 到公共和别人的分支去 (插图一)。

【插图一】从成员角度出发,管理自己的 Git Repository

同时,假设其中一位是管理员,便要负责合井其他成员的分支,并 Push 到自己远程的 master 去 (插图二);让其他成员可以 Pull。换角度来说,管理员的远程 Repository 会被视为最新/最终版本。

【插图二】管理成员 Git Repositories

最后,再用 Python 写了一个简单的 Watchdog 程序 (插图三);当有成员 Push 到自己远程的分支去,就马上电邮通知管理员;同样,如果管理员推出最新版本时,也会通知所有成员。

【插图三】Python Watchdog 监控通知代码

以上的方法,看似复杂,但其实非常简单,稍为理解 Git 的原理和 Linux 的运作,就能明白。