You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何避免每次向远程仓库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
    # 新版Git
    git config --global credential.helper manager-core
    # 旧版Git
    git config --global credential.helper wincred
    
    设置后凭证会存在Windows凭据管理器里,下次push自动调用。
  • macOS系统:利用系统钥匙串存储
    git config --global credential.helper osxkeychain
    
    第一次输入后,凭证会自动存在钥匙串,后续无需手动输入。
  • Linux系统:用libsecret存储(需要先安装依赖)
    先安装必要的包(以Debian/Ubuntu为例):
    sudo apt-get install libsecret-1-0 libsecret-1-dev
    
    然后编译并配置Git凭证助手:
    git 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协议不仅不用每次输密码,安全性也更高,是团队协作的常用方案:

  1. 生成SSH密钥对:打开终端执行,一路回车用默认设置即可(也可以设置密钥密码,增强安全性)
    ssh-keygen -t ed25519 -C "你的邮箱地址"
    
  2. 添加公钥到Git平台:找到生成的公钥文件(默认路径是~/.ssh/id_ed25519.pub),复制里面的全部内容,然后到你的Git平台(GitHub/GitLab等)的账号设置里,添加新的SSH密钥。
  3. 修改远程仓库地址:先查看当前远程地址:
    git remote -v
    
    然后把HTTPS地址改成SSH地址:
    git remote set-url origin git@xxx.com:你的用户名/仓库名.git
    
    之后再执行git push就不用输入用户名密码了!

小提醒

  • 公共电脑上别用永久存储凭证的方法,避免账号泄露;
  • SSH密钥的私钥文件(id_ed25519)一定要妥善保管,别泄露给其他人。

内容的提问来源于stack exchange,提问作者user9556946

火山引擎 最新活动