標籤:git ssh 簡單 server 自建
環境:centos和ubuntu系統都可以
CentOS release 6.7
git version 1.7.1
git-server 192.168.50.108
git-client 192.168.50.112
備忘:基於linux系統下做ssh模式的gitserver,需要ssh免密鑰,因為git使用者是禁止登入的,clone時沒有免ssh後會要求輸入密碼導致無法操作。
部署:
git-server:
1.安裝git軟體(用戶端和伺服器端使用的是同一個軟體)
yum install git -y
2.初始化倉庫(鑒於此處是共用倉庫,所有要建立裸倉庫)
mkdir /data/sample.git
git init --bare /data/sample.git
chown git.git /data/sample.git -R
3.配置git使用者使用的shell為git-shell
which git-shell(返回結果/usr/bin/git-shell)
chsh -s /usr/bin/git-shell git
git-client:
1.安裝git軟體
yum install git -y
2.配置使用者的ssh密鑰資訊,並提供給git-server
ssh-keygen -t rsa -C "[email protected]" (與git config的資訊一致,記錄檔案log資訊,可查看是誰修改的。)
假如你是用的是本台機器root使用者,產生的密鑰預設在/root/.ssh/下
scp /root/.ssh/id_rsa.pub [email protected]:/tmp
git-server:
允許另外一天機器的使用者無密鑰訪問git使用者的資訊
mkdir /home/git/.ssh && cat id_rsa.pub >>/home/git/.ssh/authorized_keys
git-client:
1.clone遠程server的裸倉庫
git clone [email protected]:/data/sample.git
2.添加遠程倉庫作為源倉庫
git remote add origin [email protected]:/data/sample.git
git remote -v(查看存在的倉庫源)
2.預設clone的是master倉庫,可以直接在master更新
cd sample/
echo "this is a test file" >test
3.配置git全域資訊
git config --global user.name ‘test‘
git config --global user.email ‘[email protected]‘
4.添加並提交檔案
git add test
git commit -m "this is fire commit"
5.把修改後的檔案推送的git-server源做共用
git push -u origin master
註:由於代碼存在多個版本,且介於安全考慮master會被限制,使用者可以自己建立分支,然後請求合并。 所以大多數修改並不是直接在master上。以下是分支操作
1.clone maste後建立分支
git checkout -b fenzhi
git branch(查看當前所在分支)
2.添加並提交檔案
echo "hello world " >fenzhifile
git add
git commit -m ‘fenzhi‘
3.把建立的分支推送到git-server源做共用
git push origin fenzhi
git-client:測試
1.測試master:換台機器(同樣需要免ssh)或換個目錄測試
cd /tmp
git clone [email protected]:/data/sample.git
查看只有一個test檔案,這個是我們剛才在master上添加的。
cd sample/ && cat test
2.測試fenzhi
git clone [email protected]:/data/sample.git -b fenzhi
同樣剛才的fenzhi檔案也存在,test也存在。因為我們是在master主要功能上修改的。如果檔案沒有相同的,那就是不同的項目。
git協助手冊
本文出自 “菜鳥成長記” 部落格,請務必保留此出處http://startlinux.blog.51cto.com/10045010/1754045
【ssh簡單版git-server 1】自建git-server