首页 > 解决方案 > 如何在服务器上设置 git 存储库,并允许多个用户执行 git pull,而不是由一个用户拥有?

问题描述

作为一个开发团队,我们在本地(使用 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':

即使其他人首先克隆了存储库?

标签: gitgit-pullgit-clonemultiple-users

解决方案


尝试在不指定 url 上的用户名的情况下进行克隆......当然,不同的用户必须设置他们的证书,这样才能发生魔法https://confluence.atlassian.com/bitbucket/set-up-an-ssh -key-728138079.html


推荐阅读