Git&GitHub
Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng)。
Github是用Git做版本控制的代碼托管平臺(tái)。也就表示這樣的代碼托管平臺(tái)可以有很多個(gè),git和github不是一一對(duì)應(yīng)關(guān)系。比如,聽說過的還有“碼云”,等等。
Git是分布式版本控制系統(tǒng),就是將同一個(gè)Git倉(cāng)庫(kù),分布到不同的電腦上。這樣工作時(shí)就必須找一臺(tái)電腦充當(dāng)服務(wù)器倉(cāng)庫(kù)的角色,每天24小時(shí)開機(jī),其他每個(gè)人都從這個(gè)服務(wù)器倉(cāng)庫(kù)中拉取別人的提交,并且各自把各自的提交推送到這個(gè)服務(wù)器倉(cāng)庫(kù)里。但這是很不方便的,如果有個(gè)遠(yuǎn)程的免費(fèi)的倉(cāng)庫(kù)可以使用才是最好的。
GitHub就是提供Git倉(cāng)庫(kù)托管服務(wù)的,只要注冊(cè)一個(gè)GitHub賬號(hào),就可以免費(fèi)獲得Git遠(yuǎn)程倉(cāng)庫(kù)。也就是有了這個(gè)遠(yuǎn)程倉(cāng)庫(kù)之后,一起合作的小伙伴拉取或是提交都是面對(duì)這個(gè)遠(yuǎn)程倉(cāng)庫(kù)就可以了。
什么是Git
Git是目前世界上最先進(jìn)的分布式版本控制系統(tǒng)(沒有之一)。
什么契機(jī)下,產(chǎn)生的版本控制系統(tǒng):
- 如果幾個(gè)同事一起合作編輯一個(gè)文件,如果全靠人工的話,就需要保留每個(gè)時(shí)期,每個(gè)人的版本,以便之后查看,修改。還得整理出包含每個(gè)改動(dòng)的最終版,這個(gè)最終版只要有人改動(dòng),就得找到那個(gè)改動(dòng)的地方,然后更新??傊?,整個(gè)過程是非常耗費(fèi)時(shí)間和人力的。
由此需要,產(chǎn)生了版本管理系統(tǒng),它可以自動(dòng)幫我們記錄每次文件的改動(dòng),還可以讓同事協(xié)作編輯,也不用自己管理一堆類似的文件,也不需要把文件傳來傳去。 - 知道了版本控制系統(tǒng),那什么是分布式呢?
與分布式對(duì)應(yīng)的是集中式。
集中式就是將整個(gè)文件統(tǒng)一放在特定服務(wù)器上,工作的時(shí)候先要從這個(gè)服務(wù)器上獲取到最新版本,然后再進(jìn)行自己的編輯修改,完了再提交到此服務(wù)器上。所以如果沒有網(wǎng)絡(luò),就沒法工作了。 - 分布式是每個(gè)人電腦上都有完整版本,沒有網(wǎng)絡(luò)也可以工作,可以同事之間交換修改部分,也可以統(tǒng)一設(shè)立中央服務(wù)器,然后得到每個(gè)人修改的記錄。
先簡(jiǎn)單這樣有個(gè)概念,之后再自己實(shí)驗(yàn)。
如何安裝Git
服務(wù)器端
1.先從yum安裝git
yum -y install git
2.在需要的位置創(chuàng)建一個(gè)裸倉(cāng)庫(kù)(最后以.git結(jié)尾)
cd /usr/local
mkdir git
cd git
git init
3.創(chuàng)建一個(gè)git用戶并賦予密碼
useradd git
passwd git
4.賦予git用戶權(quán)限
chown -R git:git learngit.git
5.禁用git用戶shell登錄(一定要禁用)
vi /etc/passwd
將git用戶修改為如下(一般在最后一行)
git:x:1000:1000::/home/git:/usr/bin/git-shell
其他的不用改。服務(wù)端完成。
客戶端
我使用的客戶端為git for windows
1.安裝,雙擊下一步,直到完成。
2.進(jìn)入想要將項(xiàng)目放置的目錄
3.創(chuàng)建用戶
git config --global user.name "你的名字"
git config --global user.email "你的郵箱"
- 4.創(chuàng)建秘鑰(用來防止每次commit或push都需要密碼)
ssh-keygen -t rsa -C "你的郵箱"
一直回車....
5.將秘鑰加入服務(wù)器列表
5.1 取得公鑰(本地)
在當(dāng)前目錄下(若未改變目錄,到C:\Users\Administrator.ssh\id_rsa.pub)找到.ssh目錄下的id_rsa.pub文件,打開,復(fù)制其中內(nèi)容.
- 5.2 將公鑰加入服務(wù)器列表(服務(wù)器)
CentOS 7默認(rèn)列表在/root/.ssh/authorized_keys,使用vi 編輯此文件輸入剛才復(fù)制的內(nèi)容,保存退出。
vi /root/.ssh/authorized_keys
//i修改
//esc后輸入:wq保存退出
- 5.3 可以跳過此步,若克隆遠(yuǎn)程項(xiàng)目多次仍然需要密碼,則檢查上一步是否有錯(cuò)誤,沒有錯(cuò)誤后,再配置這一步(服務(wù)器)
在/home目錄下創(chuàng)建.ssh目錄,進(jìn)入,創(chuàng)建authorized_keys文件
cd /home
mkdir .ssh
cd .ssh
vi authorized_keys
加入我們的公鑰后保存退出。
- 克隆項(xiàng)目
git clone git@101.101.101.101:/usr/local/git/learngit.git
到此,就成功的從服務(wù)器上克隆下我們所需要的項(xiàng)目。