@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… 處得到。