配置git push不用每次输入用户名和密码

1.使用ssh协议

  • step 1: 生成公钥
ssh-keygen -t rsa -C "xxxxx@xxxxx.com"  
# Generating public/private rsa key pair...
# 三次回车即可生成 ssh key
  • step 2: 查看已生成的公钥
cat ~/.ssh/id_rsa.pub
# ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6eNtGpNGwstc....
  • step3: 复制已生成的公钥添加到git服务器
  • step4:
    使用ssh协议clone远程仓库
    or
    如果已经用https协议clone到本地了,那么就重新设置远程仓库
git remote set-url origin git@xxx.com:xxx/xxx.git

2.设置git配置

对于 HTTP 协议 git 拥有一个凭证系统来处理这个事情
  • 默认所有都不缓存。 每一次连接都会询问你的用户名和密码。

  • "cache" 模式会将凭证存放在内存中一段时间。 密码永远不会被存储在磁盘中,并且在15分钟后从内存中清除。

  • "store" 模式会将凭证用明文的形式存放在磁盘中,并且永不过期。 这意味着除非你修改了你在 Git 服务器上的密码,否则你永远不需要再次输入你的凭证信息。 这种方式的缺点是你的密码是用明文的方式存放在你的 home 目录下。

  • 如果你使用的是 Mac,Git 还有一种 “osxkeychain” 模式,它会将凭证缓存到你系统用户的钥匙串中。 这种方式将凭证存放在磁盘中,并且永不过期,但是是被加密的,这种加密方式与存放 HTTPS 凭证以及 Safari 的自动填写是相同的。

  • 如果你使用的是 Windows,你可以安装一个叫做 “winstore” 的辅助工具。 这和上面说的 “osxkeychain” 十分类似,但是是使用 Windows Credential Store 来控制敏感信息。 可以在 https://gitcredentialstore.codeplex.com下载。
    你可以设置 Git 的配置来选择上述的一种方式

git config --global credential.helper cache

部分辅助工具有一些选项。 “store” 模式可以接受一个 --file <path> 参数,可以自定义存放密码的文件路径(默认是~/.git-credentials)。 “cache” 模式有 --timeout <seconds> 参数,可以设置后台进程的存活时间(默认是 “900”,也就是 15 分钟)。 下面是一个配置 “store” 模式自定义路径的例子:

git config --global credential.helper store --file ~/.my-credentials

Git 甚至允许你配置多个辅助工具。 当查找特定服务器的凭证时,Git 会按顺序查询,并且在找到第一个回答时停止查询。 当保存凭证时,Git 会将用户名和密码发送给 所有 配置列表中的辅助工具,它们会按自己的方式处理用户名和密码。 如果你在闪存上有一个凭证文件,但又希望在该闪存被拔出的情况下使用内存缓存来保存用户名密码,.gitconfig 配置文件如下:

[credential]
    helper = store --file /mnt/thumbdrive/.git-credentials
    helper = cache --timeout 30000

3.修改git配置文件

在用户文件夹下找到 .gitconfig文件,用编辑器或者vim打开,如果之前有配置过用户名和密码就会在里面看到

[user]
    name = xxx
    email = xxx@xxxxx.com

在后面追加如下配置并保存

[credential]
     helper=store

下次执行git push再次输入用户名之后,git就会记住用户名密码并在上述目录下创建.git-credentials文件,记录的就是输入的用户名密码。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,347评论 19 139
  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 14,646评论 9 163
  • 本文为 Git教程的学习笔记,教程源自廖雪峰的博客。这是一个由浅入深,学完后能立刻上手的Git教程。另,附上另一本...
    七弦桐语阅读 11,377评论 5 47
  • “县公安系统党委结合本部门实际,坚持从严治警和从优待警相结合的基本方针,大力推进加强干部日常管理监督工作深入开展,...
    晴空排鹤阅读 2,939评论 0 0
  • 每一個微笑,背後都帶著無法想象的心酸。或許你說,我就是笑了,可是同齡人里有幾個人的眼眸里不是藏著幾滴淚。是啊,我心...
    阳光shalley阅读 1,183评论 0 0