如何在服务器上设置 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,而不是由一个用户拥有?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Docker 容器克隆 Git 存储库

如何在 Linux 上设置具有 HTTP 访问权限的 Git 服务器

如何设置公共 git 存储库?

我如何自己为多个用户托管 Mercurial 存储库?

如何在远程存储库上使用 git bisect?

管理 svn、git 或 cvs 的工具