Git按照目录分权限问题

1)Git不能像SVN那样,在一个库中,按照目录为单位进行权限的设置。
也不允许对整个库设置为读权限,只对某个目录设置为写权限。哎,有些失望!但人家说这是与Git分布式控制的理念违背的。不过现在Git也在开发部分克隆等功能。
参见说明:
https://blog.youkuaiyun.com/Colt666/article/details/89205788

2)这里有一个变通的方法,比较复杂。https://blog.youkuaiyun.com/weixin_45110404/article/details/90741417?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0.pc_relevant_default&spm=1001.2101.3001.4242.1&utm_relevant_index=2

  1. 这里还有一个使用引用的方法,将许多库引用到一个主库中,实现都在一个目录中,但又分别设置权限的问题。但是,对于提交、checkout等操作,则需要分别单独操作。参见:https://my.oschina.net/u/183217/blog/214667

https://www.jianshu.com/p/870c0b50b922

### 创建共享 Git 仓库 共享 Git 仓库可以通过创建一个裸仓库(bare repository)来实现。裸仓库不包含工作目录,仅用于共享和协作。以下是创建共享 Git 仓库的步骤: 1. 创建一个目录用于存放裸仓库,例如 `example.git`: ```bash sudo mkdir example.git ``` 2. 进入该目录并初始化裸仓库: ```bash cd example.git sudo git --bare init ``` 初始化完成后,Git 会创建一个空的仓库,路径为 `/home/git/example.git/` [^1]。 ### 配置用户访问权限 为了确保多个用户可以访问共享仓库,需要配置用户权限。可以通过以下方式实现: - **使用 SSH 用户权限**:为每个用户创建 SSH 密钥,并将公钥添加到 `~/.ssh/authorized_keys` 文件中。 - **设置仓库权限**:使用 `chmod` 和 `chown` 命令调整仓库目录权限和所有权,确保所有用户都有读写权限: ```bash sudo chown -R git:git example.git sudo chmod -R 775 example.git ``` ### 初始化本地版本库并推送代码 在本地开发环境中,需要初始化 Git 仓库并连接到共享仓库: 1. 初始化本地版本库: ```bash git init ``` 2. 添加远程仓库地址: ```bash git remote add origin git@netkiller:example.git ``` 3. 添加文件并提交: ```bash git add . git commit -m "Initial commit" ``` 4. 推送代码到共享仓库: ```bash git push origin master ``` ### 管理不想被 Git 跟踪的文件 在开发过程中,某些文件(如编译生成的文件、IDE 配置文件等)不需要被 Git 跟踪。可以通过 `.gitignore` 文件排除这些文件: 1. 在项目根目录创建 `.gitignore` 文件。 2. 在文件中列出需要忽略的文件或目录,例如: ``` /build/ *.log .idea/ ``` 此配置会忽略 `build` 目录、所有 `.log` 文件以及 `.idea` 目录中的内容 [^3]。 ### 多用户协作流程 多用户协作时,可以通过以下步骤进行: 1. 克隆共享仓库到本地: ```bash git clone git@netkiller:example.git ``` 2. 修改代码后提交更改: ```bash git add . git commit -m "Update code" ``` 3. 推送更改到共享仓库: ```bash git push origin master ``` 如果多个用户同时修改了同一文件,Git 会提示冲突,需要手动解决冲突后再提交。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值