如何在服务器上设置 git 存储库,并允许多个用户执行 git pull,而不是由一个用户拥有?
Posted
技术标签:
【中文标题】如何在服务器上设置 git 存储库,并允许多个用户执行 git pull,而不是由一个用户拥有?【英文标题】:How can you set up a git repository on a server, and allow multiple users to do a git pull, instead of it being owned by one user? 【发布时间】:2019-07-01 18:54:31 【问题描述】:作为一个开发团队,我们在本地(使用 git)构建我们的项目,并将代码推送到特定于该项目的私有存储库。对于 Web 应用程序,我们通过 SSH 连接到生产服务器并拉入代码。我们的问题是,当需要将更新拉入服务器时,只有一个人有权执行 git pull。
将项目添加到服务器时,我们通常会运行以下命令:
git clone https://username@bitbucket.org/team-name/test-repository.git
然后,当您想对该存储库执行 git pull
时,系统会提示您输入密码:
Password for 'username@bitbucket.org':
但是,如果其他用户尝试使用git pull
,也会要求他们输入原始用户密码。
我们想要做的是授权我们的团队,或者至少是某种其他类型的授权,我们都可以这样做git pull
,而无需让其他人登录并为彼此做这件事。
我尝试克隆一个没有用户名的 git repo:
git clone bitbucket.org:team-name/test-repository.git .
但不是那样工作,而是得到这个结果:
Cloning into '.'...
Warning: Permanently added the RSA host key for IP address '0.0.0.0' to the
list of known hosts.
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
我们还找到了另一种方法。如果我要登录做一个git pull
,你可以使用这个命令:
git remote set-url origin https://username@bitbucket.org/team-name/test-repository.git
这将允许您将存储库指向您的最新提交,并使用您自己的密码从那里执行 git pull,但我仍然认为必须有更好的方法。
一定有某种方法可以让您简单地登录和使用:
git pull
Password for 'username@bitbucket.org':
即使其他人一开始就克隆了存储库?
【问题讨论】:
【参考方案1】:尝试在不指定 url 上的用户名的情况下进行克隆....当然,不同的用户必须设置他们的证书,这样才能发生奇迹https://confluence.atlassian.com/bitbucket/set-up-an-ssh-key-728138079.html
【讨论】:
以上是关于如何在服务器上设置 git 存储库,并允许多个用户执行 git pull,而不是由一个用户拥有?的主要内容,如果未能解决你的问题,请参考以下文章