Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过ssh进行Git克隆,通过https进行推送_Git_Ssh_Https_Bitbucket - Fatal编程技术网

通过ssh进行Git克隆,通过https进行推送

通过ssh进行Git克隆,通过https进行推送,git,ssh,https,bitbucket,Git,Ssh,Https,Bitbucket,我在BitBucket中有一套私人Git回购协议。我想通过SSH克隆它们,这样就可以在不需要密码的情况下自动进行克隆。但是,我希望通过HTTPS进行推送,因为我希望使用不同的用户名进行推送 这台电脑是一台普通的电脑,我想区分谁推送更改,但我不在乎谁克隆更改 有没有办法做到这一点?谢谢 您可以为此使用两个或多个不同的遥控器。默认情况下,克隆远程存储库时,会自动为您创建远程源文件。但是您每次都可以在git命令行上指定不同的存储库,就像 git push https://git-server/myre

我在BitBucket中有一套私人Git回购协议。我想通过SSH克隆它们,这样就可以在不需要密码的情况下自动进行克隆。但是,我希望通过HTTPS进行推送,因为我希望使用不同的用户名进行推送

这台电脑是一台普通的电脑,我想区分谁推送更改,但我不在乎谁克隆更改


有没有办法做到这一点?谢谢

您可以为此使用两个或多个不同的遥控器。默认情况下,克隆远程存储库时,会自动为您创建远程
源文件。但是您每次都可以在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
文件中具有相同的公钥,则相同的公钥将适用于客户端。否则,必须使用不同的键。