.netrc 让 git 以 https 方式 clone 的时候不需要密码

正常情况下我们会以 ssh 方式去 clone 项目,但有些可用会用到 https 方式 clone
更新于: 2025-10-28 13:44:29

解决方案

.netrc 可以免密去 clone 项目

步骤

  1. 到用户根目录
  2. 创建 .netrc 文件
  3. 写入与 github.com 相关的脚本
  4. chmod 600 .netrc
cd ~
touch .netrc
chmod 600 .netrc

.netrc 内容

machine github.com
    login afeiship
    password GITHUB_TOKEN

空格/换行

  • 目前这个 .netrc 是 windows 下的 _netrc 直接重命名来的
  • 所以,这里直接在 linux 下使用是不行的
# 有问题的情况
ubuntu@ubuntu:~/apps$ cat -A ~/.netrc
machine git.saybot.net^M$
 login ppt.share^M$
 password _DVTig8J2rDmpDoNaf2A^M$

# 去掉空格的情况
ubuntu@ubuntu:~/apps$ sed -i 's/\r$//' ~/.netrc

# 最后再检查一下
ubuntu@ubuntu:~/apps$ cat -A ~/.netrc
machine git.saybot.net$
 login ppt.share$
 password _DVTig8J2rDmpDoNaf2A$

对比一下效果

未免密的效果
免密码的效果

不足之处

个人认为些方案的不足之处

  1. 暂时不知道如何直接调用 env 里的变量
  2. 暂无

Windows 下的处理

# cmd
windows 下使用这个即可 _netrc
# cygwin 需要同步使用这个
$ cp /cygdrive/c/Users/Administrator/_netrc ~/.netrc