在Centos7上安裝git服務


前言

一開始,打算在Windows上安裝git服務,折騰了一天,在Copssh(win2008、win7、win2003)上總是配置不成功,最終無功而返,最后只好先放棄Windows了,以后有時間再研究研究。

當然Windows版的還有其它軟件可用,比如Gitstack、Gitblit等,不想搞Windows版的了,不是這個限制就是那個問題,麻煩多,所以直接上Linux版的。

下面一段是Linux工具,引用自http://blog.chinaunix.net/uid-15174104-id-3843570.html

在Git服務管理工具這個領域,主要有三種流行的方案,它們分別是:

Gitosis - 輕量級,開源項目,使用SSH公鑰認證,只能做到庫級的權限控制。目前項目已經停止開發,不再維護。

Gitolite - 輕量級,開源項目,使用SSH公鑰認證,能做到分支級的權限控制。

Git + Repo + Gerrit - 超級重量級,集版本控制,庫管理和代碼審核為一身。可管理大型及超大型項目。

 注:其實還有很多,如:gitlab、gitblit、gitbucket、gogs,請參考“幾個Git倉庫開源軟件的比較” http://dz.sdut.edu.cn/blog/subaochen/2016/01/github_like_softwares/

安裝

Step 1 安裝git

yum install perl openssh git

 

Step 2建立一個git用戶,並做初步配置

adduser --system --shell /bin/sh --create-home --home-dir /home/git git
# 進入git用戶的home目錄
cd /home/git
# 新建一個目錄,用於存放git的全部倉庫
mkdir repositories
# 設置該目錄的所有權
chown git:git -R ./repositories
# 修改該目錄的操作權限
chmod 700 ./repositories

 

Step 3生成一對公鑰證書(空密碼則直接回車)

# 可直接在服務器上生成,也可以在本地生成,在這里我直接在服務器上生成了。
ssh-keygen -t rsa
# 最后生成兩個文件,分別為id_ras.pub(公鑰) 和id_rsa(私鑰)
# 將公鑰移到/home/git/.ssh/目錄下,注意,公鑰文件名改了,公鑰名對應gitolite里配置的用戶名,admin我用於做系統管理員的賬號名。
mv id_rsa.pub /home/git/.ssh/admin.pub
# 將私鑰id_rsa用SFTP下載回到本地Windows的C:\Users\Administrator\.ssh\目錄下,Administrator是我登錄Windows的賬號,你要改成自己電腦對應的目錄下,用於本地git登錄遠程服務器。

 

Step 4切換至剛建的git用戶,安裝gitolite

su git
git clone git://github.com/sitaramc/gitolite
mkdir -p $HOME/bin
# 安裝gitolite
gitolite/install -to $HOME/bin
# 安裝時報錯,根據錯誤提示,百度了幾下,安裝相關的依賴
yum install wget perl-ExtUtils-MakeMaker gcc

wget http://www.cpan.org/modules/by-module/Data/Data-Dumper-2.154.tar.gz
tar xvzf Data-Dumper-2.154.tar.gz
cd Data-Dumper-2.154
perl Makefile.PL
make
make install

 

Step 5配置gitolite

$HOME/bin/gitolite setup -pk admin.pub
# 完成后,在/home/git/repositories里面,生成兩個倉庫gitolite-admin.git和test.git,一個是管理倉庫用的,另一個是測試用的;下面我們主要對gitolite-admin.git倉庫進行操作,就可以管理服務器上的全部倉庫了。

 

Step 6管理gitolite

git clone git@172.16.13.229:gitolite-admin
#完成后有兩個目錄,分別是conf和keydir,conf/gitolite.conf是用戶、倉庫的權限配置,keydir是放對應用戶的公鑰,修改好后push回服務器,就完成了管理操作。

 

下面,我們用個例子說明如何管理git倉庫。

1、  最初的conf/gitolite.conf內容如下:

repo gitolite-admin
    RW+     =   admin

repo testing
    RW+     =   @all

 

2、  然后我們在gitolite.conf內容下面添加如下內容

@ android_group = zhangsan lisi

repo androidapp
    RW+     =   @android_group

 

3、  @ android_group = zhangsan lisi,定義了@android_group組,組員是zhangsan和lisi兩個人,當然,組里也可以包含另一組,人員或組之間用空格分開,我們修改后如下:

@ android_group = zhangsan lisi
@ ios_group = zhangsan wanwu
@ app_group = @android_group @ios_group

repo androidapp
    RW+     =   @android_group

repo appdoc
    RW+     =   @ app_group

 

4、  repo androidapp,定義了一個androidapp倉庫,該倉庫讀寫權限為@android_group,最后push回服務器后,我們就可以在本地執行

git remote add origin git@172.16.13.229: androidapp.git
git push origin master

 

兩次命令來首次推送本地倉庫到遠程服務器倉庫,下次有修改再推送時直接git push即可。

 

Step 7給公司里每位童鞋分配私鑰證書

1、  生成證書

ssh-keygen -t rsa –C “zhangsan@example.com”

2、  將公鑰id_ras.pub改名為童鞋名字全拼,比如zhangsan.pub,並拷到gitolite-admin倉庫的keydir目錄下;

3、  將私鑰id_rsa飛Q發給相應的童鞋;

4、  重復1到3,直到全部發給每位童鞋;

5、  修改gitolite.conf,配置各個項目的訪問權限;

6、  推送gitolite-admin修改后的內容到服務器;

7、  完成分配工作。

注:人員名字全拼為公鑰文件名,同時也是gitolite.conf里的用戶名;私鑰id_rsa讓童鞋們放在C:\Users\Administrator\.ssh\目錄下。

Administrator是系統登錄名,如果你的不是這個名,那就改改。

當然了,也可以讓童鞋們自己生成公鑰對,然后把公鑰統一發給我。

在Windows下使用git圖形客戶端

1、  安裝Windows git,下載地址https://git-for-windows.github.io/,下載后一路next安裝即可。

2、  安裝TortoiseGit,TortoiseSVN的兄弟,下載地址https://tortoisegit.org/download/,也是一路next安裝。

3、  配置TortoiseGit,參考其他文章即可,網上文章還是比較多的,比如下面這篇寫得就很好http://blog.csdn.net/renfufei/article/details/41647937

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM