37

是否可以临时更改 ssh 用户为“git push remote master”而不弄乱 .git/config 或“git remote”,或者使用整个远程 url?

[root@host gitrepo]# git push otheruser@remote master # this does not work, but how great it would be
[root@host gitrepo]# USER=otheruser git push remote master # still asks password for root
4

5 回答 5

45

您是否尝试过使用整个远程 URL?

git push ssh://<temp_user>@<host>/<repo_path> <local_branch>:<remote_branch>

系统会提示您提供密码

于 2013-10-10T14:17:30.837 回答
22

完成提交后,您可以使用以下语法:

git push https://<username>@github.com/<github repository> <local branch name>:<remote branch name>

系统会要求您提供 github 密码来处理推送。

例如,如果你的 github 用户名是“foobar”,仓库克隆 url 是“ https://github.com/bar/ish.git ”,本地和远程分支命名为“nonce”,可以使用如下:

git push https://foobar@github.com/bar/ish.git nonce:nonce
于 2014-03-12T15:54:21.043 回答
8

我用

git push https://github.com/${userName}/${repoName}

它会提示您输入用户名和密码

于 2015-02-07T04:29:46.590 回答
7

使用 git remote 注册的 ssh 地址可能已经包含用户名,因此您需要使用完整的 ssh url,例如:

otheruser@remote:arepo

那是行不通的,因为 ssh 将使用默认的公钥/私钥(当前由第一个用户用于身份验证)。

您可以在本地配置中注册一个新的遥控器:

# use the current ssh address registered for origin, changing just the user
# but you need a config file
git remote add originOtheruser otheruser:arepo

您必须有一个$HOME/.ssh/config文件,才能定义 ssh 条目“其他用户”,因为 ssh 需要知道它需要使用什么公钥/私钥:它不能是默认的($HOME/.ssh/id_rsa$HOME/.ssh/id_rsa.pub

参见例如“如何在 github 上为 1 个用户添加 2 个 repo 的部署密钥

Host otheruser
HostName remote
User otheruser
IdentityFile ~/.ssh/otheruser

假设您已将其他用户的公钥/私钥存储为:

$HOME/.ssh/otheruser
$HOME/.ssh/otheruser.pub

现在,您可以使用该新遥控器进行推送:

git push originOtheruser master
于 2013-03-21T15:20:45.310 回答
2

对于 Windows 用户:按照说明进行操作:

控制面板>>用户帐户>>凭据管理器>> Windows凭据>>通用凭据

您可以更改 git 凭据:

点击修改>>提供uname和密码

或者您可以删除 git 凭据。下次你推送 repo 时,它会要求你提供凭证。

于 2018-12-08T07:46:02.207 回答