我有一组私有Git存储库在BitBucket上。 我想通过SSH克隆它们,以便可以自动化克隆而无需请求密码。 但是,我想要使用HTTPS进行推送,因为我想要使用不同的用户名推送。
这台电脑是普通电脑,我想区分谁推送更改,但我不关心谁克隆它们。
有没有办法做到这一点? 谢谢!
你可以使用两个或更多不同的远程仓库来实现。默认情况下,当你克隆一个远程仓库时,origin
远程仓库会自动为你创建。但是每次在 git 命令行中字面上指定一个不同的仓库也是可以的,例如:
git push https://git-server/myrepo.git branch
但如果您计划多次使用它们,将其作为命名远程资源添加会更加方便。以下是更完整的示例记录:
git clone ssh://user1@git-server/myrepo.git
cd myrepo
git remote add push https://git-server/myrepo.git
然后您可以使用git fetch origin
或git pull
更新本地副本,然后可以使用例如git push push branch
推送(请注意,此处的第二个push
是远程名称)。这样,您还可以使用不同的用户指定不同的ssh远程地址:
git remote add push2 ssh://user2@git-server/myrepo.git
然后,您可以执行git push push2 branch
来通过SSH作为不同用户进行推送。
〜/ .ssh / known_hosts
文件中具有相同的公共密钥,则对客户端也将起作用。否则,必须使用不同的密钥。 - Michael Adam