开发的人员越来越多,希望对 git 仓库进行管理和权限设置。
比如某些分支,只能由特殊的一些用户访问,不是所有人都能访问到,这里是读和写的权限都需要考虑。
另外,比如某些 git 的目录下,最好也能做到权限控制,比如某些目录针对某些用户是不能读的。
我不知道是否有这样的功能,貌似网上搜索了一下,微软公司有一个网页:Set Git branch security and permissions - Azure Repos | Microsoft Learn — https://learn.microsoft.com/en-us/azure/devops/repos/git/branch-permissions?view=azure-devops
但是感觉这个是云服务,而我需要的是一个本地能装的代码版本管理系统。
我也看了一下,似乎 svn 有不同的目录权限,但是 svn 是很老的东西,基本上现在所有人都在用 git 了。
请各位 v 友推荐一下是否有这样的 git 服务器软件,谢谢!
1
duke807 2023-08-22 16:15:17 +08:00 via Android
gerrit 看一下
|
2
v2kid 2023-08-22 16:34:20 +08:00
gitea 试试。
|
3
dobelee 2023-08-22 16:37:27 +08:00
gitolite 能配置分支权限。
|
4
vicalloy 2023-08-22 16:42:58 +08:00
git 从原理上说不支持按照目录分配权限。
如果你要安装目录分配权限,得用 submodules 控制。 |
5
zjsxwc 2023-08-22 16:45:47 +08:00
偷懒的解决办法:使用 svn
不偷懒的办法:使用 git submodule https://git-scm.com/book/en/v2/Git-Tools-Submodules ``` 比如说,如果您的团队 α 和 β 应该有单独的代码库,但其他一些项目同时使用它们,请将 α 和 β 的代码库放入单独的存储库中,并且使用它们的项目也是一个单独的存储库,该存储库使用子模块来引用这两个项目 这取决于。 子模块的一个属性是子模块引用始终引用相应存储库中的精确提交,因此第三个(依赖)存储库中的每次提交都将引用 α 和 β 代码库的精确状态,从而在过去的任何时间点提供可重现的构建。 ``` |
6
ashuai 2023-08-22 16:56:08 +08:00
简单点 gitlab
|
7
NessajCN 2023-08-22 17:00:20 +08:00
这些都是 git 基本功能,根本不用什么额外软件
git 是分布式工具,软件不分服务端客户端,只要你能被 ssh 进来就能直接用 git 全部实现你要的功能 https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server |
8
gdb OP |
9
Reficul 2023-08-22 17:22:42 +08:00
git 服务端的 hook 去做目录权限管理,其他配合 girret 应该可以吧。。。
|
10
Reficul 2023-08-22 17:24:04 +08:00
BTW ,不让读特定目录应该做不到,Git 是分布式版本管理系统,一拉就得是完整的仓库。 不让写特定目录配合 Hook 应该可以的,机器人自动 -1.
|
11
cheneydog 2023-08-22 17:24:50 +08:00
gogs
|
12
someday3 2023-08-22 17:25:40 +08:00
你这个需求不对,是伪需求。
如果你需要控制某些分支一些人连读都不能读,那么他已经不能算是这个项目的分支了。虽然逻辑上可能是这个项目的一个子分支,但是要求上已经是一个独立的项目了,比如一些政府类的定制,那升级为单独的仓库来控制。 不然的话像你说的,分支会很乱。 git 是产品上的抽象,产品的分支就应该是所有的分支有相同的权限。每个分支拥有单独的读写控制,那就是一个产品下有 N 个产品,这在逻辑上是混乱的。这样的产品应该抽象为一个组,一个组有一个基线仓库,就是产品的公版。另外一些是组内的另一些仓库,单独控制权限。 |
13
gdb OP |
14
coderzhangsan 2023-08-23 09:20:18 +08:00 1
既然 SVN 能满足需求,就用 SVN 吧,其他工具能不能实现,需要调研,弄不好也是瞎折腾;至于 SVN 担心用的人少,我觉得担心是多余的,说到底就是个版本管理工具,开发人员不了解可以学习,制定好基本操作规范流程,就可以了,也不是非要精通,况且很多人也是经历过 SVN 的时代,或多或少都有了解的。
|
15
gegewu0927 2023-08-23 09:20:32 +08:00
https://github.com/PGYER/codefever 不知道满足不,可以看看其中的功能。
|
16
cslive 2023-08-23 09:30:46 +08:00
换 svn 然后用 git 操作一样的,git svn clone url
|
17
vibbow 2023-08-23 10:39:11 +08:00
bitbucket server
|
18
gdb OP @vibbow 你这个服务器应该不行吧,我网上查了一下,见一个回答:BitBucket File and folder level permissions within same repository - Stack Overflow — https://stackoverflow.com/questions/39976046/bitbucket-file-and-folder-level-permissions-within-same-repository 总而言之,在可以读取一个 git 的情况下,要对 git 中的某些目录或者某些分支进行读的功能限制,估计在目前 git 里面是做不到的。
|