Git配置SSH Key
最近看到很多人在配置Git时,遇到很问题,网上教程千篇一律。这儿自己单独记录一份。
Git配置SSH Key
1.检查本机是否有ssh key设置,切换到.ssh目录
$ cd ~/.ssh 或cd .ssh
2.配置git用户名和邮箱,配置多个用户时添加 --add 参数
$ git config --global --add user.name "username"
$ git config --global --add user.email "email"
$ git config --global --unset user.name "username" #移除用户
$ git config --global --unset user.email "email" #移除邮箱
3.查看用户名和邮箱
$ git config --list
(如果没有安装TortoiseGit则跳过)因为TortoiseGit和Git的冲突需要把TortoiseGit设置改正如下:
1.在右键选择 TortoiseGit -> Settings -> Network
2.将SSH client指向 ~Git\usr\bin\ssh.exe (Git安装路径下的\usr\bin\ssh.exe)
4.生成成对的私钥公钥
$ ssh-keygen -t rsa -C "test@qq.com"
注:生成id_rsa私钥公钥时需要命不同文件名,密码可设可不设。
5.添加ssh key到对应的GitHub或GitLab上面
登录GitHub系统;点击右上角账号头像的“▼”→Settings→SSH kyes→Add SSH key。
复制id_rsa.pub的公钥内容到Key填写框内。
6.测试公钥配置是否成功
$ssh -T git@github.com
FQA
1.Git克隆代码需要输入密码?Git提交代码需要输入账号、密码的。
tips: 1.Access denied.
2.Authentication failed.
3.Permission denied (publickey).
说明:问题根源是TortoiseGit采用的是自己的ssh.exe生成密钥,与git的密钥生成方式不一致,导致密钥无效。
解决: 1.重新配置用户名和邮箱,重新生成密钥,把密钥放入远程仓库中。
2.检查TortoiseGit右键的TortoiseGit -> Settings -> Network设置,
将SSH client指向 ~Git\usr\bin\ssh.exe
2.Git采用 http 方式(而不是ssh)clone/pull/push代码时,需要输入用户名密码,解决每次输入账号密码
解决:执行存储密码命令
$git config --global credential.helper store
命令会在项目本地生成一个文本,记录账号和密码。使用上述的命令配置好之后,再操作一次git pull,然后它会提示输入账号和密码,这一次之后就不需要再次输入账号和密码了。
常用命令
$git clone url #克隆远程仓库
$git --version #查看git的版本信息
$git branch #查看本地所有分支
$git branch -a #查看所有的分支
$git branch -r #查看远程所有分支
$git branch dev #创建分支
$git branch -D master develop #删除本地库develop
$git checkout dev #切换到本地dev分支
$git checkout -b dev #创建分支并切换分支
$git checkout --track origin/dev #切换到远程dev分支
$git commit #提交
$git commit -am "test" #提交并且加注释
$git commit -m [message] #提交暂存区到仓库区
$git commit -v #提交时显示所有diff信息
$git status #查看当前状态
$git remote show #查看远程库
$git remote add origin url #添加远程库
$git remote show origin #显示远程库origin里的资源
$git pull #本地与服务器端同步
$git push origin master #将文件给推到服务器上
$git push origin master:develop #将本地库develop与服务器上的库进行关联
$git push origin master:my-dev #将本地库与服务器上的库进行关联
$git merge origin/dev #将分支dev与当前分支进行合并
$git add read.txt #将文件加入git
$git rm read.txt #从git中删除指定文件
更多命令参考:https://www.cnblogs.com/zengming/p/7733099.html
备注:
作者:Shengming Zeng
博客:http://www.cnblogs.com/zengming/
本文是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。
<欢迎有不同想法或见解的同学一起探讨,共同进步>
Git配置SSH Key的更多相关文章
- git配置SSH Key,上传本地代码至github
git配置全局的name和email git config --global user.name "name" git config --global user.email &qu ...
- git配置ssh key并从github.com拉取repos
一.配置ssh key 1. 进入当前用户目录cd ~2. 生成ssh keyssh-keygen -t rsa -C "ABC@qq.com"ABC@qq.com账号必须是你登录 ...
- git 配置 .ssh key
1.安装git软件: 2.打开本地git bash,使用如下命令生成ssh公钥和私钥对: ssh-keygen -t rsa -C 'xxx@xxx.com' 然后一路回车(-C 参数是你的邮箱 ...
- git 配置ssh key
第一次生成 ssh key 进入ssh目录 cd ~/.ssh,再输入:ls ,查看文件,如果有.pub的文件,说明已有ssh key 如果没有, 则生成秘钥:ssh-keygen -t rsa - ...
- 个人在git配置SSH Key遇到的问题以及解决方案
第一次用git上传代码到github,在这过程中遇到很多问题,在输入git命令的时候都小心翼翼,因为一不小心感觉就会出错.. 英语不好..在敲入git命令过程中各种错误提示勉强翻译下才看得懂 最后输入 ...
- Git 配置ssh key的步骤
First start by setting up your own public/private key pair set. This can use either DSA or RSA, so b ...
- git for windows配置SSH key
0. 前言 之前用过一段时间的git,后来迁移系统导致电脑中的git bash消失了,由于在上家公司版本管理用的svn,所以一直没有重新配置,目前工作中版本管理用的gitLab,后期计划将工作之外的精 ...
- 一台电脑上配置多个git的ssh key
前几天公司的代码库全部迁移到了阿里云上,在配置git的ssh key的时候遇到了一个问题,那就是自己的密钥在添加时提示已经存在,原来是自己的个人账号上已经添加过这个密钥了,公司分配的账号就不能再添加这 ...
- 解决GitHub未配置SSH key提示错误信息
git push -u origin master Permission denied (publickey). fatal: Could not read from remote repositor ...
随机推荐
- Centos7部署ntp服务器同步时间以及直接将本地时间同步为北京时间
一.查看配置 查看时区列表: timedatectl list-timezones|grep Asia 查看当前时间: date 查看当前设置: [root@localhost ~]# timedat ...
- oracle-对象表-外部表
http://www.blogjava.net/decode360/archive/2008/10/16/286802.html create or replace type person as ob ...
- 利用express托管静态文件
通过express内置的express.static可以方便的托管静态文件,例如图片.css.javascript文件等. 将静态资源文件所在的目录作为参数传递给express.static中间件就可 ...
- 是“帐”还是“账” --- 由 FastAdmin 用户中心引出的讨论
是"帐"还是"账" --- 由 FastAdmin 用户中心引出的讨论 有小伙伴对 FastAdmin 用户中心的"账号"提出异议,应该为& ...
- taro 最佳实践
对 JSX 支持程度补充说明: 不能在包含 JSX 元素的 map 循环中使用 if 表达式 不能使用 Array#map 之外的方法操作 JSX 数组 不能在 JSX 参数中使用匿名函数 暂不支持在 ...
- $.post() 和 $.get() 如何同步请求
由于$.post() 和 $.get() 默认是 异步请求,如果需要同步请求,则可以进行如下使用: 在$.post()前把ajax设置为同步:$.ajaxSettings.async = false; ...
- Spring 集成Junit单元测试
1.在pom增加junit和spring-test <dependency> <groupId>junit</groupId> <artifactId> ...
- ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件
本文将使用Timer控件更新两个UpdatePanel控件,Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel的触发器,翻译自官方文档. 主要内容 在多个Upda ...
- Xshell中vim退出内容仍停留在屏幕的问题
Xshell中vim退出内容仍停留在屏幕的问题 我每次在vim中退出后内容都显示在屏幕上面,看上去特别烦,就在网上看了下,通过调试成功. 第一种方法:在xshell中设置 1.这是我在vim中退出的状 ...
- 回看《例说FPGA》---DDR2控制器集成与读写测试
回看<例说FPGA> ---DDR2控制器集成与读写测试 1.DDR2 IP核的配置 需要弄清楚的选项主要有: PLL reference clock frequency Memory c ...