這篇教程是在電腦上已經(jīng)安裝好git的前提之上的,要進(jìn)行以下配置,請(qǐng)先確保你的電腦已經(jīng)安裝好git。以下配置步驟是在git bash里面進(jìn)行配置的,可以通過 右鍵》 git bash here 打開
在管理Git項(xiàng)目上,很多時(shí)候都是直接使用https url克隆到本地,當(dāng)然也有有些人使用SSH url克隆到本地。
這兩種方式的主要區(qū)別在于:使用https url克隆對(duì)初學(xué)者來說會(huì)比較方便,復(fù)制https url然后到git Bash里面直接用clone命令克隆到本地就好了,但是每次fetch和push代碼都需要輸入賬號(hào)和密碼,這也是https方式的麻煩之處。
而使用SSH url克隆卻需要在克隆之前先配置和添加好SSH key,因此,如果你想要使用SSH url克隆的話,你必須是這個(gè)項(xiàng)目的擁有者。否則你是無法添加SSH key的,另外ssh默認(rèn)是每次fetch和push代碼都不需要輸入賬號(hào)和密碼,如果你想要每次都輸入賬號(hào)密碼才能進(jìn)行fetch和push也可以另外進(jìn)行設(shè)置。前面的幾篇介紹Git的博客里面采用的都是https的方式作為案例,
今天主要是講述如何配置使用ssh方式來提交和克隆代碼。
大概可以分為一下幾個(gè)步驟
設(shè)置Git的user name和email:(如果是第一次的話)檢查是否已經(jīng)有SSH Key。生成密鑰添加密鑰到ssh-agent登陸Github, 添加 ssh 測(cè)試:1、設(shè)置Git的user name和email:(如果是第一次的話)
# 這里的“xujun" 可以替換成自己的用戶名git config --global user.name "xujun"# 這里的郵箱 gdutxiaoxu@163.com 替換成自己的郵箱git config --global user.email "gdutxiaoxu@163.com"
檢查是否已經(jīng)有SSH Key。
cd ~/.ssh
接著輸入ls,
ls
列出該文件下的文件,看是否存在 id_isa 和 id_isa.pub 文件(也可以是別的文件名,只要 yourName 和 yourName.pub 承兌存在),如果存在的話,證明已經(jīng)存在 ssh key了,可以直接跳過 生成密鑰 這一步驟,
下圖是存在的情況下
3、生成密鑰
# 這里的郵箱 gdutxiaoxu@163.com 替換成自己的郵箱ssh-keygen -t rsa -C "gdutxiaoxu@163.com"
連續(xù)3個(gè)回車。如果不需要密碼的話。
最后得到了兩個(gè)文件:id_rsa和id_rsa.pub。
默認(rèn)的存儲(chǔ)路徑是:
C:\Users\Administrator\.ssh
4、添加密鑰到ssh-agent
確保 ssh-agent 是可用的。ssh-agent是一種控制用來保存公鑰身份驗(yàn)證所使用的私鑰的程序,其實(shí)ssh-agent就是一個(gè)密鑰管理器,運(yùn)行ssh-agent以后,使用ssh-add將私鑰交給ssh-agent保管,其他程序需要身份驗(yàn)證的時(shí)候可以將驗(yàn)證申請(qǐng)交給ssh-agent來完成整個(gè)認(rèn)證過程。
# start the ssh-agent in the backgroundeval "$(ssh-agent -s)"
添加生成的 SSH key 到 ssh-agent。
ssh-add ~/.ssh/id_rsa
5、登陸Github, 添加 ssh 。
把id_rsa.pub文件里的內(nèi)容復(fù)制到這里
6、測(cè)試:
ssh -T git@github.com
你將會(huì)看到:
Hi humingx! You've successfully authenticated, but GitHub does not provide shell access.
如果看到Hi后面是你的用戶名,就說明成功了。
擴(kuò)展
如果我之前的倉庫是用https提交的,那么我現(xiàn)在想用ssh 的方式提交,怎么辦呢 ,別急,下面就來教你怎樣操作了。
這里同樣以我本機(jī)目錄下的G://test 倉庫為例子,
找到倉庫下 .git 文件夾下的config文件,打開,可以看到以下內(nèi)容
[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true[remote "origin"] url = https://github.com/gdutxiaoxu/test.git fetch = +refs/heads/*:refs/remotes/origin/*[branch "master"] remote = origin merge = refs/heads/master
將文件中的 url = https://github.com/gdutxiaoxu/test.git 更改為 url = git@github.com:gdutxiaoxu/test.git 即可。
修改后的文件如下
[core] repositoryformatversion = 0 filemode = false bare = false logallrefupdates = true symlinks = false ignorecase = true[remote "origin"] url = git@github.com:gdutxiaoxu/test.git fetch = +refs/heads/*:refs/remotes/origin/*[branch "master"] remote = origin merge = refs/heads/master
進(jìn)入本地倉庫 ,增加 xujun.txt 文件,提交,你會(huì)看到不需要再提交密碼了
遠(yuǎn)程倉庫
到此本篇博客為止,下一篇博客將講解電腦怎樣配置多個(gè)ssh key。
您可能感興趣的文章:- 手把手教你使用Git(圖文教程)
- Git 命令行教程及實(shí)例教程(附github注冊(cè))
- git使用教程(最詳細(xì)、最傻瓜)
- Git的簡單理解及基礎(chǔ)操作命令詳解
- Git 常用命令速查表(圖文+表格)
- git工具常用命令及ssh操作方法