如何轻松向多个Git远程仓库推送并自动保存凭证?
解决Git多仓库重复输入凭证的问题
非SSH方案:用Git凭证管理器(优先推荐)
Git自带的凭证管理器能把密码/令牌存在系统密钥链里,只需要输入一次就不用再重复操作:
- Windows:运行
git config --global credential.helper manager-core,第一次推送Bitbucket或GitHub时,输入对应凭证(Bitbucket直接输令牌,GitHub输用户名+令牌),系统会自动保存这些信息。 - macOS:执行
git config --global credential.helper osxkeychain,后续操作同上,凭证会存在系统钥匙串中。 - Linux:使用
git config --global credential.helper libsecret,凭证将存入系统默认的密码管理工具。
虚假邮箱配置:不要设置全局邮箱,进入你的仓库目录,单独执行 git config user.email "fake-email@xxx.com",这个仓库的提交就会使用该虚假邮箱,不会影响其他仓库的配置。
SSH方案(备选)
如果接受SSH方式,操作步骤如下:
- 生成SSH密钥:运行
ssh-keygen -t ed25519 -C "fake-email@xxx.com",全程按回车即可(也可设置密钥密码,之后能通过ssh-agent自动加载)。 - 上传公钥到平台:用
cat ~/.ssh/id_ed25519.pub复制公钥内容,分别粘贴到GitHub的「Settings → SSH and GPG keys」和Bitbucket的「Settings → SSH keys」中。 - 修改远程仓库地址:
- 查看当前远程地址:
git remote -v - 将Bitbucket的origin改为SSH格式:
git remote set-url origin git@bitbucket.org:你的用户名/仓库名.git - 将GitHub的远程改为SSH格式:
git remote set-url github git@github.com:你的用户名/仓库名.git
- 查看当前远程地址:
- 自动加载密钥(避免重复输密码):
- Linux/macOS:执行
eval "$(ssh-agent -s)"和ssh-add ~/.ssh/id_ed25519,若要开机自动加载,把这两行添加到~/.bashrc或~/.zshrc文件中。 - Windows:用Git Bash运行相同命令,或在系统SSH服务中配置自动加载。
- Linux/macOS:执行
额外小技巧:简化推送命令
每次敲多段push命令太繁琐,可以创建一个Git别名:git config --global alias.pushall '!git push origin master && git push github master'
之后只需执行 git pushall,就能同时推送到两个仓库,配合上面的凭证方案,全程无需手动输入凭证。
内容的提问来源于stack exchange,提问作者wololoo
相关产品推荐
相关产品推荐

