在用戶主目錄下,看看有沒有.ssh
目錄,如果有,再看看這個(gè)目錄下有沒有id_rsa
和id_rsa.pub
這兩個(gè)文件,如果已經(jīng)有了,可直接跳到下一步。如果沒有,打開Shell(Windows下打開Git Bash),創(chuàng)建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
一路回車,使用默認(rèn)值即可,由于這個(gè)Key也不是用于軍事目的,所以也無需設(shè)置密碼。
如果一切順利的話,可以在用戶主目錄里找到.ssh
目錄,里面有id_rsa
和id_rsa.pub
兩個(gè)文件,這兩個(gè)就是SSH Key的秘鑰對(duì),id_rsa
是私鑰,不能泄露出去,id_rsa.pub
是公鑰,可以放心地告訴任何人。
登陸GitHub,打開“Account settings”,“SSH Keys”頁面:
然后,點(diǎn)“Add SSH Key”,填上任意Title,在Key文本框里粘貼id_rsa.pub
文件的內(nèi)容:
現(xiàn)在的情景是,你已經(jīng)在本地創(chuàng)建了一個(gè)Git倉庫后,又想在GitHub創(chuàng)建一個(gè)Git倉庫,并且讓這兩個(gè)倉庫進(jìn)行遠(yuǎn)程同步,這樣,GitHub上的倉庫既可以作為備份,又可以讓其他人通過該倉庫來協(xié)作,真是一舉多得。
當(dāng)在github上創(chuàng)建倉庫是,會(huì)提示可以將一個(gè)已有的本地倉庫與之關(guān)聯(lián),根據(jù)提示:
$ git remote add origin git@github.com:user/repository.git
把上面的user
替換成你自己的GitHub賬戶名,repository
替換成自己建立的倉庫名。
添加后,遠(yuǎn)程庫的名字就是origin
,這是Git默認(rèn)的叫法,也可以改成別的,但是origin
這個(gè)名字一看就知道是遠(yuǎn)程庫。
把本地庫的內(nèi)容推送到遠(yuǎn)程,用git push
命令,實(shí)際上是把當(dāng)前分支master
推送到遠(yuǎn)程:
$ git push -u origin masterCounting objects: 20, done.Delta compression using up to 4 threads.Compressing objects: 100% (15/15), done.Writing objects: 100% (20/20), 1.64 KiB | 560.00 KiB/s, done.Total 20 (delta 5), reused 0 (delta 0)remote: Resolving deltas: 100% (5/5), done.To github.com:michaelliao/learngit.git * [new branch] master -> masterBranch 'master' set up to track remote branch 'master' from 'origin'.
由于遠(yuǎn)程庫是空的,我們第一次推送master
分支時(shí),加上了-u
參數(shù),Git不但會(huì)把本地的master
分支內(nèi)容推送的遠(yuǎn)程新的master
分支,還會(huì)把本地的master
分支和遠(yuǎn)程的master
分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡化命令。
從現(xiàn)在起,只要本地作了提交,就可以通過命令:
$ git push origin master
當(dāng)你第一次使用Git的clone
或者push
命令連接GitHub時(shí),會(huì)得到一個(gè)警告:
這是因?yàn)镚it使用SSH連接,而SSH連接在第一次驗(yàn)證GitHub服務(wù)器的Key時(shí),需要你確認(rèn)GitHub的Key的指紋信息是否真的來自GitHub的服務(wù)器,輸入yes
回車即可。
要關(guān)聯(lián)一個(gè)遠(yuǎn)程庫,使用命令git remote add origin git@server-name:path/repo-name.git;
關(guān)聯(lián)后,使用命令git push -u origin master
第一次推送master分支的所有內(nèi)容;
此后,每次本地提交后,只要有必要,就可以使用命令git push origin master
推送最新修改;
命令git clone
克隆一個(gè)本地庫:
$ git clone git@github.com:michaelliao/gitskills.gitCloning into 'gitskills'...remote: Counting objects: 3, done.remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3Receiving objects: 100% (3/3), done.
GitHub給出的地址不止一個(gè),還可以用https://github.com/michaelliao/gitskills.git
這樣的地址。實(shí)際上,Git支持多種協(xié)議,默認(rèn)的git://
使用ssh
,但也可以使用https
等其他協(xié)議。
使用https
除了速度慢以外,還有個(gè)最大的麻煩是每次推送都必須輸入口令,但是在某些只開放http
端口的公司內(nèi)部就無法使用ssh
協(xié)議而只能用https
.
聯(lián)系客服