我似乎找不到与此完全相关的问题。我使用的是 ubuntu 20.04,我的项目存储在 /var/www/html/My_Project 中
目前我与一个由五人组成的团队合作,当我们推送或拉取时,我们使用 sudo。当我们这样做时,我们的 git 存储库会通过 https 拉取并要求提供凭据。从今天起,GitHub 不再使用 https 的标准密码,它现在是一个类似于“lksadknkasjvjkasd345kKja345neuhiehkjsdfn”的令牌(不是实际令牌)。保存和反复使用这个令牌很麻烦。
我设置了一个 ssh 密钥,但必须为 root 用户设置我的密钥,因为没有人有权限写入此目录。(我真的很喜欢使用 sudo 进行更改)。那么有没有办法我们仍然可以使用 sudo,但使用每个团队成员的密钥,而不仅仅是我的密钥。
我认为让每个人都使用我的钥匙是一种不好的做法
补充一点说明,我知道这是一个糟糕的设置。我不是可以改变它的人。我们有 5 名开发人员在这台机器上拥有自己的项目,并且每个开发人员都没有访问所有存储库的权限,因此以 root 身份拥有 1 个 ssh 密钥是行不通的。
我们确实有一台仅由我们的 CTO 管理的生产机器,“代码审查”会在投入生产之前在这台机器上进行。
所以,如果您有解决方案,请仅回答问题,或者如果这只是无望的努力,请告诉我。#SolutionsNeeded
答案1
这里的坏习惯是,你的存储库位于一个不可写的目录中。从你的描述来看,情况甚至更糟,实际上每个人都在使用同一个本地 git 存储库!这从一开始就破坏了使用 git 的整个意义!如果你们中的任何一个人搞砸了存储库,你就无法从其他人的本地副本中修复它。你们也不能同时工作。这真的是一个非常糟糕的设置。
您说您喜欢使用 sudo 进行更改。很抱歉,但这完全没有意义。您通过控制合并的内容来控制访问权限,而不是通过控制谁可以写入本地存储库文件!此外,这是一种非常不安全的方法:您为所有开发人员提供了对机器的 root 访问权限,这样他们就可以编写代码了!我怀疑您认为这会增加安全性,但事实是,它的作用恰恰相反。
告诉大家运行一个git clone
在他们的主目录中这样每个人都可以拥有自己的本地代码副本。接下来,配置您的存储库,使其不允许在未审核拉取请求的情况下进行合并。无论如何,这都是您想要的。
这不仅可以让你充分利用 git,让每个人都拥有存储库的本地副本,从而确保代码安全,并允许多个人在相同或不同的分支上并行工作,还可以解决你在问题中描述的问题:现在每个人都可以将自己的公共 ssh 密钥添加到 GitHub,将自己的私有 ssh 密钥存储在其中,$HOME/.ssh/
并能够推送到存储库并打开拉取请求,供存储库所有者审查和合并。