@git配置ssh服务html
create by db on 2020-2-16 18:49:26
Recently revised in 2020-2-16 18:49:31git
Hello 小伙伴们,若是以为本文还不错,麻烦点个赞或者给个 star,大家的赞和 star 是我前进的动力!GitHub 地址github
在管理Git项目上,不少时候都是直接使用https url
克隆到本地,固然也有有些人使用SSH url
克隆到本地。shell
这两种方式的主要区别在于:c#
使用https url
克隆对初学者来讲会比较方便,复制https url
而后到git Bash里面直接用clone命令克隆到本地就行了,可是每次fetch和push代码都须要输入帐号和密码,这也是https方式的麻烦之处。windows
而使用SSH url
克隆却须要在克隆以前先配置和添加好SSH key
,所以,若是你想要使用SSH url
克隆的话,你必须是这个项目的拥有者。不然你是没法添加SSH key
的,另外ssh默认是每次fetch和push代码都不须要输入帐号和密码,若是你想要每次都输入帐号密码才能进行fetch和push也能够另外进行设置。bash
下面主要是讲述如何配置使用ssh方式来提交和克隆代码。app
打开cmd
,查看git版本:ssh
输入:git --version
显示:git version 2.20.1.windows.1
复制代码
若是显示相似git version 2.20.1.windows.1
的Git版本,说明你的电脑是安装过Git的;不然请左转打开Git的正确姿式,把Git安装完了再来,不送。ide
输入:git config user.name
显示:用户名
输入:git config user.email
显示用户邮箱
复制代码
若是没有配置,那么须要配置用户名和邮箱:
输入:git config --global user.name "xxx"
输入:git config --global user.email "xxx"
复制代码
输入:cd ~/.ssh
输入:ls,
复制代码
查看该文件下的文件,看是否存在 id_isa
和 id_isa.pub
文件(也能够是别的文件名,只要 yourName
和 yourName.pub
成对存在就能够),若是存在的话,证实已经存在 ssh key了,能够直接跳过四、生成SSH Key
这一步骤,
输入: ssh-keygen -t rsa -C "你的邮箱"
复制代码
此处会提示Enter file in which to save the key (/Users/shutong/.ssh/id_rsa):
这样一段内容,让咱们输入文件名,若是第3步的文件存在的话最好在这里修改一下文件名以防覆盖以前的内容;若是第3步的文件不存在的话则直接按enter
键就行了。
以后会有提示你是否须要设置密码,若是设置了每次使用Git都会用到密码,通常都是直接不写为空,直接enter
就行了。
上述操做执行完毕后,在~/.ssh/
目录会生成XXX-rsa
(私钥)和XXX-rsa.pub
(公钥),它们默认的存储路径是:
C:\Users\Administrator.ssh
注意
我的建议生成的rsa最好单独命名不要使用默认名称,由于有可能sshkey可能会用在多个地方,一不当心就可能被覆盖而后致使git功能异常
输入:cat ~/.ssh/id_rsa.pub
复制代码
这里会把公钥显示出来,咱们把这段内容复制出来。
登录你的github账户 -> 点击你的头像,而后点击 Settings
-> 左栏点击 SSH and GPG keys
-> 点击 New SSH key
而后将复制的公钥内容,粘贴进Key
文本域内。 title
域,本身随便起个名字。
点击 Add SSH key
。
输入: ssh -T git@github.com
输出: Hi danygitgit! You've successfully authenticated, but GitHub does not provide shell access. 复制代码
恭喜你,你的设置已经成功了。
若是以前添加的是HTTPS
协议的github仓库地址,那么每次push或者pull仍然须要密码,因此,咱们须要将其修改成ssh
协议的,这样,就不须要这么麻烦了。
那么咱们应该怎么办呢?
首先进入本地仓库,右键 -> Git Bash Here
输入: git remote -v
输出: origin https://github.com/danygitgit/document-library.git (fetch)
输出: origin https://github.com/danygitgit/document-library.git (push)
复制代码
若是是以上的结果那么说明此项目是使用https
协议进行访问的(若是地址是git开头则表示是git
协议)
登录你的远程仓库,在上面能够看到你的ssh协议相应的url,相似:
git@github.com:danygitgit/document-library.git
复制此ssh连接。
方法有三种:
git remote origin set-url [url]
git remote rm origin git remote add origin [url]
config
文件 找到仓库下 .git
文件夹下的config
文件,打开,能够看到如下内容
[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true[remote "origin"] url =https://github.com/danygitgit/document-library.git fetch = +refs/heads/:refs/remotes/origin/[branch "master"] remote = origin merge = refs/heads/master
将文件中的 url =https://github.com/danygitgit/document-library.git
更改成 url = git@github.com:danygitgit/document-library.git
便可。
修改后的文件以下
[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true[remote "origin"] url = git@github.com:danygitgit/document-library.git fetch = +refs/heads/:refs/remotes/origin/[branch "master"] remote = origin merge = refs/heads/master
之后,不论是push仍是pull,你都不须要再提交密码了。
SourceTree
是一款git管理可视化工具,就不须要繁琐的敲打命令行了。我的比较推荐,不管在windows环境仍是mac的os环境。官网连接
关于SourceTree
的安装及配置就不赘述了,具体请参考
磨刀不误砍柴工。敢于尝试,善于总结。开启你的Git踩坑之旅吧!
路漫漫其修远兮,但愿Git能够帮咱们记录每个脚印,每一步成长。与诸君共勉。
祝你们2020更上一层楼!
后记:Hello 小伙伴们,若是以为本文还不错,记得点个赞或者给个 star,大家的赞和 star 是我编写更多更丰富文章的动力!GitHub 地址
db 的文档库 由 http://www.javashuo.com/tag/db 采用 知识共享 署名-非商业性使用-相同方式共享 4.0 国际 许可协议进行许可。
基于github.com/danygitgit上的做品创做。
本许可协议受权以外的使用权限能够从 creativecommons.org/licenses/by… 处得到。