本文记录当有多个 Github 账号,在 push 代码时,如何把本地内容推送到不同的 Github 账号下的三种方式。
方式一:ssh 方式使用 git config
如果仓库使用的是 ssh,且对应 Github 账号都配置了密钥,那么可以使用如下命令,对不同的仓库设置不同的用户名和邮箱地址
git config user.name username
git config user.email email
使用这种方法,会将提交日志上的用户名和邮箱也更改
这种方法不适用于 https 方式 clone 的仓库的 push
方式二:https 方式清理密码管理器
git config --local credential.helper ""
git push origin main
macOS 下需要去 Keychain Access 里删除 Github Login 项
清理密码管理器后,推送时,将会出现输入用户名和密码的提示,输入不同的用户名和密码即可
方式三:推送时指定 Github 用户名和 Token
git push https://<username>:<token>@github.com/username/reponame.git
在 2021 年 8 月 13 日后无法再通过在@
前面指定 github 账号密码的方式进行 push,需要通过创建并使用 token 的方式来进行鉴权。
创建 token 步骤:
- Github Settings
- Developer settings
- Personal access tokens
- Tokens (classic)
注意:如果用户名中包含@
等特殊字符,需要将其进行 url 编码转换,如@
替换成%40
。