CentOS自建Git服務端,Android Studio 添加自建遠程庫


SVN是集中式管理版本控制,Git分佈式版本控制,相對來說,Git更加的靈活一些。現在N多做APP研發的都採用了Git來管理代碼倉庫。

github就是這樣一個平臺,提供代碼的管理。但是很多技術公司,還是希望使用自己的Git服務器!

網路上有很多教程,但是都不太詳細,多半都是抄來抄去。

我們這裏安裝的是 git-2.11.2.tar.gz 版本,記得去官方網站下載!


第一步,先安裝依賴包:


yum -y install gcc gcc-c++ make automake autoconf libtool zlib-devel perl-CPAN gettext gettext-devel openssl-devel expat-devel curl-devel perl-devel perl-ExtUtils-MakeMaker


具體這些包都是幹什麼用的,我也不太清楚,你們自己百度吧,或許某些包是不需要安裝的。


第二步,安裝 Git 服務器端:注意我的安裝位置:/data/git 目錄下。我把 git-2.11.2.tar.gz 上傳到了/data/ide目錄下。


	mkdir /data/git

	cd /data/ide

	tar -zxvf git-2.11.2.tar.gz

	cd git-2.11.2

	make prefix=/data/git all

	make prefix=/data/git install

第三步,把Git命令加入到環境變量中,這樣我們就可以在任何目錄下,都可以執行Git命令,注意路徑啊。


	echo "export PATH=$PATH:/data/git/bin" >> /etc/bashrc

	source /etc/bashrc

	git --version

	git version 2.11.2

我在這裏執行了版本命令,顯示是 2.11.2版本,這個說明,我安裝成功了。


第四步,我們使用Git命令配置一下


	git config --global user.name "your name"

	git config --global user.email "your [email protected]"
	
	git config --list

我們設置了您的name和email,這個根據自身情況設置就行了。


第五步, 創建一個git用戶,並給這個用戶創建SSH祕鑰目錄,git用戶的名稱隨意,儘量不要用"git"

	groupadd git_xxx

	useradd -g git_xxx git_xxx

	passwd git_xxx
	
	XXXXXXXXXXXX         // 密碼沒有實質意義,因爲我們不使用密碼登陸, 但還是要複雜一些吧。


	cd /home/git_xxx     // 每個賬號都會在home下有個同名目錄,這個大家都應該清楚。

	mkdir .ssh           // 這個是目錄,有點啊,不要去掉啊 

	cd .ssh

	vi authorized_keys   // SSH訪問權限文件, 裏面存放客戶端提交的公鑰,稍後講解。
	
	:wq


	chown git_xxx:git_xxx /home/git_xxx/.ssh

	chown git_xxx:git_xxx /home/git_xxx/.ssh/authorized_keys

上面的內容,需要大家仔細注意,創建git用戶後,還要到該用戶目錄下創建祕鑰文件,並將祕鑰文件歸屬給創建的git用戶。


第六步,出於安全考慮,你可以用 Git 自帶的 git-shell 工具限制 git 用戶的活動範圍。這可以通過編輯 /etc/passwd 文件完成。

	vi /etc/passwd

	git_xxx:x:500:500::/home/git_xxx:/bin/bash

	改爲:

	git_xxx:x:500:500::/home/git_xxx:/data/git/bin/git-shell

注意啊,改動的內容其實就是後面的路徑而已。

現在 git_xxx 用戶只能用 ssh 連接來推送和獲取 Git 倉庫,而不能直接使用服務器的 shell。嘗試普通 ssh 登錄的話,會被拒絕登錄。


第七步,Git服務器打開RSA認證,解開註釋即可。

	vi /etc/ssh/sshd_config

	RSAAuthentication yes
	PubkeyAuthentication yes
	AuthorizedKeysFile  /home/git_xxx/.ssh/authorized_keys


	service sshd restart

   Git的倉庫地址有兩種方式:

    一種是SSH連接方式,形式爲:[email protected]:repertory/project.git

    一種是HTTPS形式,   形式爲: https://xxx.com/repertory/project.git

    這兩種倉庫地址使用的認證方式也不一樣。對於SSH連接,使用非對稱公鑰認證方法;對於HTTP連接,使用帳號密碼認證方式。

    這些大家都明白了吧,我們使用第一種方式SSH方式,此方式需要祕鑰文件的,不瞭解的朋友,自己百度吧。


第八步, 創建Git項目倉庫並初始化


    mkdir /data/repertory

    cd /data/repertory

    git init --bare test.git    

    chown -R git_xxx:git_xxx test.git

上面的腳步很清楚,我在/data/repertory目錄下創建了 test.git 的倉庫,那麼他的訪問形式如下:


[email protected]:/data/repertory/test.git

看清楚了,訪問的形式就是 git用戶@IP地址:倉庫目錄,簡單吧。


第九步,將客戶端提交上來的 公鑰文件 id_rsa.pub 加入到 /home/git_xxx/.ssh/authorized_keys文件裏,一行一個。


	cd /home/git_xxx     // 我把公鑰文件上傳到了這個目錄

	cat ./id_rsa.pub >> ./.ssh/authorized_keys

到這裏大家都很清楚了,客戶端通過 祕鑰文件,就能直接訪問代碼倉庫了,而不是通過賬號密碼登陸的方式。那麼客戶端的祕鑰文件如何生成呢?

話題轉移到客戶端,就是程序員開發的PC電腦,以Win7 64位爲例,我們需要安裝Git客戶端:Git-2.11.1-64-bit.exe, 記得去官網下載嘍。

安裝這個東西后,就會有一個 git-bash.exe 的窗口以供操作,跟Dos黑窗口一樣,用於執行git命令的。


    $ git config --global user.name "your name"
    $ git config --global user.email "your [email protected]"
    $ ssh-keygen -t rsa -C "your [email protected]"

上面的前兩行大家都清楚,就是配置自己的名稱和郵件,跟服務器端是一個道理。

第三行就是生成祕鑰文件,中間需要交互(設置祕鑰文件密碼),一律回車即可(密碼爲空)。

祕鑰文件生成後,它會提示你文件的目錄,一般情況下是:C:\Users\PC Name\.ssh目錄下。

就是你PC電腦用戶下的.ssh目錄下,就有 id_rsa.pub, 就是公鑰。


下一節,我們將一下如何使用 Android Studio鏈接咱們創建的遠程代碼倉庫:[email protected]:/data/repertory/test.git













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章