CentOS下Git的服務器版安裝和使用

Git分佈式版本控制系統:

Git的使用體驗,早已習慣了svn [集中式] 代碼管理的吾,第一次接觸分佈式的git的時候,感覺很難使用,煎熬了一段時間,整個項目組,也是花費了很大的代價,就是出現代碼被覆蓋很多次,代碼都不敢提交了!

記得在中國民航的時候,由於服務器硬件搬家過程中損壞,導致整個系統和代碼全部丟失,不是很重要所以沒有去做數據恢復,svn就掛了。

記得在金葵花的時候,由於svn服務器端口被搶佔,導致沒有啓動,早上經理不在,沒權限,所有,大家閒置了一早上。

使用了一段時間的git,使用過①:TortoiseGit和②:eclipse的git插件和③Git-2.6.2-64-bit的命令行,前兩者是可視化的,我選擇的最後的命令行。


Git的思想,遵循GNU的思想:GNU是“GNU is Not Unix”的遞歸縮寫。Git繼承了開源社區的精神,不直接支持權限控制。但也有腳本接口和第三方管理權限。不過視代碼爲生命,視員工爲竊賊的公司,就感覺沒必要用。但可以自己安裝gitlab,自己的git服務器。

git和github和gitlab的區別:

GitLab - 基於Git的項目管理軟件。
Github - 一個免費/收費網站,提供給用戶空間創建git倉儲,保存用戶的一些數據文檔或者代碼等。
GitLab - 是一個用於倉庫管理系統的開源項目。使用Git作爲代碼管理工具,並在此基礎上搭建起來的web服務。

Git -- 分佈式版本控制系統通常也有一臺充當“中央服務器”的電腦,但這個服務器的作用僅僅是用來方便“交換”大家的修改,沒有它大家也一樣幹活,只是交換修改不方便而已。

詳細請學習,這兒的講解nice:廖雪峯的官方網站

閒話不說,開始搭建自己的git服務器:

系統:#cat /etc/issue  --> CentOS release 6.5 (Final)和 #git --version --> git version 1.7.1

1:安裝git:

安裝git
yum install git
版本git
git --version
卸載git
yum remove git
2:搭建服務器:

①:創建git服務器工作空間:
#mkdir -p /home/repository/git
注:-p參數:如果一個目錄的父目錄不存在,就創建它
②:新建組和用戶
#groupadd git
#useradd git -g git -d /home/repository/git/ -s /usr/bin/git-shell
注:若不能執行則,先-s /bin/sh 後手動修改 /etc/passwd文件的/usr/bin/git-shell
#grep git /etc/passwd
git:x:501:501::/home/repository/git/:/usr/bin/git-shell
③:更改權限git文件和目錄權限:
#chown -R git.git /home/repository/git/
#ls -la
drwxr-xr-x  3 root root 4096 Jan 19 13:25 .
drwxr-xr-x. 6 root root 4096 Jan 17 22:51 ..
drwxr-xr-x  4 git  git  4096 Jan 19 13:25 git
④:初始化Git服務器倉庫:
服務器上的Git倉庫純粹是爲了共享,並且用戶無權限直接登錄到服務器上去改工作區,並且服務器上的Git倉庫通常都以.git結尾。
git init --bare kekeai.git
注:a,不使用--bare選項時,就會生成.git目錄以及其下的版本歷史記錄文件,這些版本歷史記錄文件就存放在.git目錄下;
b,使用--bare選項時,不再生成.git目錄,而是隻生成.git目錄下面的版本歷史記錄文件,這些版本歷史記錄文件也不再存放在.git目錄下面,而是直接存放在版本庫的根目錄下面。
⑤:本地用戶生成自己的公鑰,並收集所有用戶的id_rsa.pub文件的信息,把所有公鑰導入到/home/repository/git/.ssh/authorized_keys文件裏:目錄寫錯將出現錯誤2[文章末尾備註]文件裏,一行一個!

⑥:本地clone代碼,自己已經裝好了git命令行[ip自己服務器]:
$ git clone [email protected]:/home/repository/git/kekeai.git
Cloning into 'kekeai'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
則ok!

注:生成自己的公鑰:git使用步驟

3:遇到錯誤:

錯誤1:

$ git clone [email protected]:/home/repository/git/kekeai.git
Cloning into 'kekeai'...
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:OHPAU2Z3PkMFJYco3F/YB3slBeVz8IlP7ig4CEcm624.
Please contact your system administrator.
Add correct host key in /c/Users/Tony_tian/.ssh/known_hosts to get rid of this message.
Offending RSA key in /c/Users/Tony_tian/.ssh/known_hosts:2
RSA host key for 123.12.188.057 has changed and you have requested strict checking.
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

解決 1:

刪除自己本地[windows]的C:\Users\Tony\.ssh下known_hosts文件下,刪除,對應當前”123.12.188.057“這個服務器的:

123.12.188.057 ssh-rsa ……這一行!

問題2:

git在clone時候權限要輸入密碼:

$ git clone [email protected]:/home/repository/git/kekeai.git
Cloning into 'kekeai'...
The authenticity of host '123.12.188.057 (123.12.188.057)' can't be established.
RSA key fingerprint is SHA256:OHPAU2Z3PkMFJYco3F/YB3slBeVz8IlP7ig4CEcm624.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '123.12.188.057' (RSA) to the list of known hosts.
[email protected]'s password:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

解決2:

1:查看用戶的公鑰位置是否在,git或其他用戶的那個指定的目錄下,"公鑰文件路徑錯誤",請查看!

2:如果不是root,則查看,文件的權限問題!

3:查看本地的id_rsa.pub的內容,是否告訴服務器的,authorized_keys。

4:刪除本地known_hosts中,當前服務器的配置,重新開啓一個git命令行,clone就好!

備註:ubuntu下安裝的,gitweb和git的安裝包:

root@ip-xxx:~# du -sh gitlab_7.0.0-omnibus-1_amd64.deb 
285M	gitlab_7.0.0-omnibus-1_amd64.deb
root@ip-xxx:~# df -hl
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  3.1G  4.3G  43% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            1.9G   12K  1.9G   1% /dev
tmpfs           377M  332K  377M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            1.9G     0  1.9G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/xvdb       3.9G  8.1M  3.7G   1% /mnt
root@ip-xxx:~# ls -lht
total 285M
-rw-r--r-- 1 root root 285M Jun 23  2014 gitlab_7.0.0-omnibus-1_amd64.deb


廖雪峯的

發佈了155 篇原創文章 · 獲贊 872 · 訪問量 136萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章