遠(yuǎn)程倉庫
創(chuàng)建SSH Key
創(chuàng)建SSH Key搁料。在用戶主目錄下,看看有沒有.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是公鑰剔桨,可以放心地告訴任何人屉更。
創(chuàng)建遠(yuǎn)程庫
-
登陸GitHub,然后洒缀,在右上角找到“Create a new repo”按鈕瑰谜,創(chuàng)建一個(gè)新的倉庫:
-
在Repository name填入
learngit
,其他保持默認(rèn)設(shè)置树绩,點(diǎn)擊“Create repository”按鈕萨脑,就成功地創(chuàng)建了一個(gè)新的Git倉庫:
根據(jù)
GitHub
的提示,在本地的learngit倉庫下運(yùn)行命令:
$ git remote add origin git@github.com:you_name/learngit.git
請(qǐng)千萬注意饺饭,把上面的michaelliao
替換成你自己的GitHub賬戶名渤早,否則,你在本地關(guān)聯(lián)的就是我的遠(yuǎn)程庫瘫俊,關(guān)聯(lián)沒有問題鹊杖,但是你以后推送是推不上去的悴灵,因?yàn)槟愕腟SH Key公鑰不在我的賬戶列表中。
- 添加后骂蓖,遠(yuǎn)程庫的名字就是
origin
积瞒,這是Git默認(rèn)的叫法,也可以改成別的涯竟,但是origin
這個(gè)名字一看就知道是遠(yuǎn)程庫赡鲜。下一步空厌,就可以把本地庫的所有內(nèi)容推送到遠(yuǎn)程庫上:
$ git push -u origin master
Counting 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 -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
把本地庫的內(nèi)容推送到遠(yuǎn)程庐船,用git push
命令,實(shí)際上是把當(dāng)前分支master
推送到遠(yuǎn)程嘲更。
由于遠(yuǎn)程庫是空的筐钟,我們第一次推送master
分支時(shí),加上了-u
參數(shù)赋朦,Git
不但會(huì)把本地的master
分支內(nèi)容推送的遠(yuǎn)程新的master
分支篓冲,還會(huì)把本地的master
分支和遠(yuǎn)程的master
分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令宠哄。
- 只要本地作了提交壹将,就可以通過命令:
$ git push origin master
把本地master
分支的最新修改推送至GitHub
,現(xiàn)在毛嫉,你就擁有了真正的分布式版本庫诽俯!
小結(jié)
要關(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
推送最新修改彻舰;
分布式版本系統(tǒng)的最大好處之一是在本地工作完全不需要考慮遠(yuǎn)程庫的存在伐割,也就是有沒有聯(lián)網(wǎng)都可以正常工作,而SVN在沒有聯(lián)網(wǎng)的時(shí)候是拒絕干活的刃唤!當(dāng)有網(wǎng)絡(luò)的時(shí)候隔心,再把本地提交推送一下就完成了同步,真是太方便了透揣!
克隆倉庫
用命令git clone
克隆一個(gè)本地庫:
$ git clone git@github.com:you_name/gitskills.git
Cloning into 'gitskills'...
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 3
Receiving objects: 100% (3/3), done.
注意把Git庫的地址換成你自己的济炎,然后進(jìn)入gitskills目錄看看,已經(jīng)有README.md文件了
小結(jié)
要克隆一個(gè)倉庫辐真,首先必須知道倉庫的地址须尚,然后使用
git clone
命令克隆崖堤。Git支持多種協(xié)議,包括
https
耐床,但通過ssh
支持的原生git
協(xié)議速度最快密幔。