Git與Svn相比的優(yōu)勢(shì)
- Git最大的優(yōu)勢(shì)是:比起Svn這種中央集權(quán)的版本控制系統(tǒng)(沒(méi)了服務(wù)器歷史記錄都沒(méi)有了),Git是分布式版本控制系統(tǒng),沒(méi)了服務(wù)器,自己本地也能查看歷史記錄,分支操作等;還可以在本地隨意更改代碼,避免污染服務(wù)器;服務(wù)器啟動(dòng)不了的時(shí)候,客戶端離線可以繼續(xù)工作。
- Git分支操作比較容易,可以隨便開(kāi)分支做實(shí)驗(yàn),跟別的互不相關(guān),分支與分支之間的切換也非常簡(jiǎn)單。
- Git絕對(duì)不會(huì)有被lock了不能commit的情況出現(xiàn)。
- Git比Svn快,操作更流暢。
- 等等。
CentOs部署Git
CentOs部署Git非常簡(jiǎn)單。
- 安裝Git
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ yum install git
創(chuàng)建一個(gè)gitadmin用戶組合用戶名,用來(lái)運(yùn)行g(shù)it服務(wù)
$ groupadd gitadmin
$ adduser gitadmin -g gitadmin
- 創(chuàng)建管理公鑰的文件
$ cd /home/git/
$ mkdir .ssh
$ chmod 700 .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
- 初始化Git倉(cāng)庫(kù)
首先我們選定一個(gè)目錄作為Git倉(cāng)庫(kù),假定是/home/textanalysis,在/home/textanalysis目錄下輸入命令
$ cd /home
$ mkdir textanalysis
$ chown git:git textanalysis/
$ cd textanalysis
$ git init --bare textanalysis.git
Initialized empty Git repository in /home/textanalysis/textanalysis.git
以上命令Git創(chuàng)建一個(gè)空倉(cāng)庫(kù),服務(wù)器上的Git倉(cāng)庫(kù)通常都以.git結(jié)尾。然后,把倉(cāng)庫(kù)所屬用戶改為gitadmin:
$ chown -R git:git textanalysis.git
至此,服務(wù)器上的操作結(jié)束。
Windows端使用Git
- 下載安裝Git。
- 打開(kāi)Git Bash
生成SSH公鑰秘鑰對(duì)
$ ssh-keygen -t rsa -C "examaple@email.com"

生成SSH公鑰.jpg
過(guò)程中,有兩點(diǎn)需要注意:①輸入公鑰存儲(chǔ)的位置,如果不填寫(xiě),可以直接回車(chē),默認(rèn)存儲(chǔ)在/c/Users/../.ssh目錄下;②輸入passphrase,可以直接回車(chē)默認(rèn)為空,如果設(shè)定passphrase,后面提交文件就需要輸入這里的passphrase才能通過(guò)。
生成公鑰完成,把公鑰文件id_rsa.pub的內(nèi)容拷貝到服務(wù)器端/home/gitadmin/.ssh/authorized_keys這個(gè)文件中,ok,至此可以開(kāi)始訪問(wèn)服務(wù)器上的Git項(xiàng)目了。
- 克隆服務(wù)器上的項(xiàng)目
$ cd dir(項(xiàng)目在本地的存儲(chǔ)位置)
$ git clone gitadmin@10.0.0.103:/home/textanalysis/textanalysis.git
----------------習(xí)慣使用git bash 敲命令進(jìn)行工作的人不用進(jìn)行下一步-------------------
- 下載安裝TortoiseGit
注意:安裝過(guò)程中如下圖這一步選擇OpenSSH,免去后面的麻煩。
安裝過(guò)程.png
在本地項(xiàng)目目錄右鍵可以看到TortoiseGit選項(xiàng),可以在里面進(jìn)行提交代碼、切換分支等操作。
參考文獻(xiàn):
CentOsssh 公鑰認(rèn)證報(bào)錯(cuò):Permission denied (publickey,gssapi-keyex,gssapi-with-mic).解決
