如何避免每次向远程仓库push代码时输入用户名和密码?
解决Git Push每次输入用户名密码的问题
我太懂这种每次push都要输账号密码的烦躁了——团队协作里频繁提交代码,每次被打断输密码真的严重影响效率!下面几个实用方法,帮你彻底摆脱这个麻烦:
方法1:临时缓存凭证(短期免输)
适合不想永久存储,只是暂时不想反复输入的场景:
- 默认缓存15分钟:执行下面的命令,接下来15分钟内push都不用输密码,超时后会再次要求输入
git config --global credential.helper cache - 自定义缓存时长:比如设置1小时(3600秒),把数字改成你需要的时长就行
git config --global credential.helper 'cache --timeout=3600'
方法2:永久存储凭证(长期免输)
如果是自己的私人电脑,这个方法最省心,凭证会存在系统的安全存储里:
- Windows系统:新版Git推荐用
manager-core,旧版用wincred
设置后凭证会存在Windows凭据管理器里,下次push自动调用。# 新版Git git config --global credential.helper manager-core # 旧版Git git config --global credential.helper wincred - macOS系统:利用系统钥匙串存储
第一次输入后,凭证会自动存在钥匙串,后续无需手动输入。git config --global credential.helper osxkeychain - Linux系统:用libsecret存储(需要先安装依赖)
先安装必要的包(以Debian/Ubuntu为例):
然后编译并配置Git凭证助手:sudo apt-get install libsecret-1-0 libsecret-1-devgit clone https://github.com/git/git.git cd git/contrib/credential/libsecret make sudo cp git-credential-libsecret /usr/local/bin/ git config --global credential.helper libsecret
方法3:切换到SSH协议(推荐团队协作)
SSH协议不仅不用每次输密码,安全性也更高,是团队协作的常用方案:
- 生成SSH密钥对:打开终端执行,一路回车用默认设置即可(也可以设置密钥密码,增强安全性)
ssh-keygen -t ed25519 -C "你的邮箱地址" - 添加公钥到Git平台:找到生成的公钥文件(默认路径是
~/.ssh/id_ed25519.pub),复制里面的全部内容,然后到你的Git平台(GitHub/GitLab等)的账号设置里,添加新的SSH密钥。 - 修改远程仓库地址:先查看当前远程地址:
然后把HTTPS地址改成SSH地址:git remote -v
之后再执行git remote set-url origin git@xxx.com:你的用户名/仓库名.gitgit push就不用输入用户名密码了!
小提醒
- 公共电脑上别用永久存储凭证的方法,避免账号泄露;
- SSH密钥的私钥文件(
id_ed25519)一定要妥善保管,别泄露给其他人。
内容的提问来源于stack exchange,提问作者user9556946




