一时肿、安裝環(huán)境 ubuntu
二俭尖、需要安裝的軟件?git、openssh-server桶良、openssh-client 和?gitosis
1座舍、git 安裝
命令:sudo apt-get install git
查看是否安裝成功
命令: git --version
?git version 1.9.1
一般git默認(rèn)安裝路徑有兩個(gè) :/usr/share/git-core或者/usr/local/git
2、安裝openssh-server
命令:sudo apt-get install openssh-server
3陨帆、安裝openssh-client
命令:sudo apt-get install openssh-client
如果安裝提示錯(cuò)誤可先執(zhí)行?
命令:sudo apt-get update
4曲秉、安裝gitosis
命令:sudo apt-get install python-setuptools
命令:git?clone?https://github.com/res0nat0r/gitosis.git 此操作會在根目錄下新增gitosis文件夾
命令: cd?gitosis/
命令: sudo?python?setup.py?install
默認(rèn) Gitosis 會把?/home/git?作為存儲所有 Git 倉庫的根目錄
5、配置git賬號名和郵箱
命令:?git config --global user.name "xxx"
命令:git config --global user.email "xxx@xx.com"
6疲牵、創(chuàng)建git用戶
命令:?sudo?useradd?-m?git
命令:?sudo?passwd?git
6承二、在管理員機(jī)器(客戶端)生成秘鑰
命令:ssh-keygen? -t? rsa ????? # 這里會提示輸入密碼,我們不輸入直接回車即可
把生成的id_rsa.pub拷到git賬戶下纲爸,比如? /home/git/亥鸠,用這個(gè)key來初始化git倉庫
7、切換用戶 su? git? # 輸入密碼识啦,切到git用戶
命令:? sudo chmod a+r /home/git/id_rsa.pub
命令?: sudo -H -u git gitosis-init < /home/git/id_rsa.pub
(如果出現(xiàn)此提示:git is not in the sudoers file. This incident will be reported.這個(gè)用戶沒有用sudo的權(quán)限负蚊,需修改/etc/sudoers)
8、權(quán)限修改
命令?:sudo?chown?git:git?/home/git/repositories
命令?:?sudo?chmod?755?/home/git/repositories/gitosis-admin.git/hooks/post-update
命令?:sudo?chmod?755 /home/git/repositories
9颓哮、下載倉庫配置項(xiàng)目gitosis-admin到本地客戶端
????? ? 因?yàn)間it倉庫的配置文件都是以git方式來管理的家妆,所以你需要先下載一份到客戶端本地?。
????? ? 在你的用戶目錄下面創(chuàng)建一個(gè)臨時(shí)目錄冕茅,
????????然后 進(jìn)入到該目錄
????????然后執(zhí)行命令:
? ?git clone?git@ip:/home/git/repositories/gitosis-admin.git? ? ? ?//?命令中的ip改成你自己服務(wù)器的IP
? ??執(zhí)行完成之后伤极,目錄下會生成gitosis-admin目錄,目錄下面有一個(gè)gitosis.conf文件和一個(gè)keydir目? ? ? ? 錄姨伤,它們將是下面配置任務(wù)的主要操作對象哨坪,請牢記它們的位置。
10乍楚、在服務(wù)器新建測試倉庫
命令?:cd /home/git/repositories/
命令?:git init --bare repo1.git
11当编、修改配置文件gitosis.conf,增加如下內(nèi)容炊豪。
????????? ? [group repo1]? ????? //用戶組名
????????? ? members = zs//成員名凌箕,多個(gè)成員可以用空格隔開
????????? ? writable = repo1? ? //項(xiàng)目名及其用戶對于此項(xiàng)目的權(quán)限,目前是可寫
??????????? 每次修改內(nèi)容词渤,需要提交才能生效。
???????????? git add .
???????????? git commit -m "somthing"
?????????????git push
ok!!!!!!!!!
新建用戶
??? 1)客戶端操作:
??????? 首先要生成ssh-key,方法和前面說的一樣串绩。
???????? ssh-keygen -t rsa
???????? 然后一直回車缺虐,就OK。然后將生成的id_rsa.pub文件傳給GIT服務(wù)器管理員
? ?2)服務(wù)器端操作:
????? ? 管理員將客戶上傳的id_rsa.pub文件移到gitosis-admin/keydir目錄中礁凡,并且改名為CLIENT_NAME.pub高氮。
????????文件名與配置文件里的名字要一樣慧妄。例:用戶的pub文件為zx.pub
???????給項(xiàng)目repo1增加新的開發(fā)者,編輯gitosis.conf文件剪芍,vi gitosis.conf塞淹。
????? ? ??[group repo1]? ? //用戶組名
? ? ? ? ? members = zx? ? //成員名,多個(gè)成員可以用空格隔開
? ? ? ? ? writable =repo1? ? //項(xiàng)目名及其用戶對于此項(xiàng)目的權(quán)限罪裹,目前是可寫
????? 提交修改的管理文件:
????? git add .
????? git commit -a -m "add user zx?"
????? git push origin master
完成后
????? ? git clone git@SERVER:repo1.git? ? //克隆項(xiàng)目到本地
????? ? ……? ? //do anything you want to do
????? ? commit -am "comment"
????? ? commit push origin master