开发的人员越来越多,希望对 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 服务器软件,谢谢!
|      1duke807      2023-08-22 16:15:17 +08:00 via Android gerrit 看一下 | 
|  |      2v2kid      2023-08-22 16:34:20 +08:00 gitea 试试。 | 
|      3dobelee      2023-08-22 16:37:27 +08:00 gitolite 能配置分支权限。 | 
|  |      4vicalloy      2023-08-22 16:42:58 +08:00 git 从原理上说不支持按照目录分配权限。 如果你要安装目录分配权限,得用 submodules 控制。 | 
|  |      5zjsxwc      2023-08-22 16:45:47 +08:00 偷懒的解决办法:使用 svn 不偷懒的办法:使用 git submodule https://git-scm.com/book/en/v2/Git-Tools-Submodules ``` 比如说,如果您的团队 α 和 β 应该有单独的代码库,但其他一些项目同时使用它们,请将 α 和 β 的代码库放入单独的存储库中,并且使用它们的项目也是一个单独的存储库,该存储库使用子模块来引用这两个项目 这取决于。 子模块的一个属性是子模块引用始终引用相应存储库中的精确提交,因此第三个(依赖)存储库中的每次提交都将引用 α 和 β 代码库的精确状态,从而在过去的任何时间点提供可重现的构建。 ``` | 
|      6ashuai      2023-08-22 16:56:08 +08:00 简单点 gitlab | 
|      7NessajCN      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 | 
|  |      8gdb OP | 
|  |      9Reficul      2023-08-22 17:22:42 +08:00 git 服务端的 hook 去做目录权限管理,其他配合 girret 应该可以吧。。。 | 
|  |      10Reficul      2023-08-22 17:24:04 +08:00 BTW ,不让读特定目录应该做不到,Git 是分布式版本管理系统,一拉就得是完整的仓库。 不让写特定目录配合 Hook 应该可以的,机器人自动 -1. | 
|  |      11cheneydog      2023-08-22 17:24:50 +08:00 gogs | 
|  |      12someday3      2023-08-22 17:25:40 +08:00 你这个需求不对,是伪需求。 如果你需要控制某些分支一些人连读都不能读,那么他已经不能算是这个项目的分支了。虽然逻辑上可能是这个项目的一个子分支,但是要求上已经是一个独立的项目了,比如一些政府类的定制,那升级为单独的仓库来控制。 不然的话像你说的,分支会很乱。 git 是产品上的抽象,产品的分支就应该是所有的分支有相同的权限。每个分支拥有单独的读写控制,那就是一个产品下有 N 个产品,这在逻辑上是混乱的。这样的产品应该抽象为一个组,一个组有一个基线仓库,就是产品的公版。另外一些是组内的另一些仓库,单独控制权限。 | 
|  |      13gdb OP | 
|      14coderzhangsan      2023-08-23 09:20:18 +08:00  1 既然 SVN 能满足需求,就用 SVN 吧,其他工具能不能实现,需要调研,弄不好也是瞎折腾;至于 SVN 担心用的人少,我觉得担心是多余的,说到底就是个版本管理工具,开发人员不了解可以学习,制定好基本操作规范流程,就可以了,也不是非要精通,况且很多人也是经历过 SVN 的时代,或多或少都有了解的。 | 
|      15gegewu0927      2023-08-23 09:20:32 +08:00 https://github.com/PGYER/codefever 不知道满足不,可以看看其中的功能。 | 
|      16cslive      2023-08-23 09:30:46 +08:00 换 svn 然后用 git 操作一样的,git svn clone url | 
|  |      17vibbow      2023-08-23 10:39:11 +08:00 bitbucket server | 
|  |      18gdb 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 里面是做不到的。 |