通过ssh进行Git克隆,通过https进行推送
我在BitBucket中有一套私人Git回购协议。我想通过SSH克隆它们,这样就可以在不需要密码的情况下自动进行克隆。但是,我希望通过HTTPS进行推送,因为我希望使用不同的用户名进行推送 这台电脑是一台普通的电脑,我想区分谁推送更改,但我不在乎谁克隆更改通过ssh进行Git克隆,通过https进行推送,git,ssh,https,bitbucket,Git,Ssh,Https,Bitbucket,我在BitBucket中有一套私人Git回购协议。我想通过SSH克隆它们,这样就可以在不需要密码的情况下自动进行克隆。但是,我希望通过HTTPS进行推送,因为我希望使用不同的用户名进行推送 这台电脑是一台普通的电脑,我想区分谁推送更改,但我不在乎谁克隆更改 有没有办法做到这一点?谢谢 您可以为此使用两个或多个不同的遥控器。默认情况下,克隆远程存储库时,会自动为您创建远程源文件。但是您每次都可以在git命令行上指定不同的存储库,就像 git push https://git-server/myre
有没有办法做到这一点?谢谢 您可以为此使用两个或多个不同的遥控器。默认情况下,克隆远程存储库时,会自动为您创建远程
源文件。但是您每次都可以在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分支
进行推送(请注意,第二个推送
这里是远程设备的名称)。这样,您还可以使用不同的用户指定不同的ssh远程:
git remote add push2 ssh://user2@git-server/myrepo.git
然后您可以执行git push push2分支
,以便作为不同的用户通过ssh进行推送。感谢您的回复!我实际上知道我可以做到这一点,但没有这样想:)关于添加另一个不同用户的ssh,只有一个问题:在这种情况下,ssh密钥是如何工作的?user2将能够推送,因为我已将密钥分配给user1?或者user2是否需要部署另一个SSH密钥?谢谢要使用的ssh密钥取决于服务器上已知哪些ssh密钥是不同用户的授权密钥。如果两个用户在其~/.ssh/known_hosts
文件中具有相同的公钥,则相同的公钥将适用于客户端。否则,必须使用不同的键。