如果想建立一個基于固定使用者組多人協作的git庫,那麼我們就可以從建立使用者組入手。
比如我們建立一個git使用者組,規定此組下的使用者才有權限操作某個git庫,
grep git /etc/group ##檢視是否有git使用者組,如果沒有此使用者組,就先新添使用者組:
groupadd git ### 添加git使用者組
sudo usermod -a -G git xiaoang ###将xiaoang加入git組
如果想要将某個使用者從git組中删除:
gpasswd -d 使用者名 組名 ## 将使用者從組删除
或者
usermod -G git yangxue-pd ###将yangxue-pd使用者從git另一組中移動到git組中,相當于從别組中删除
添加完使用者後,可以驗證一下user是否屬于git組了
groups xiaoang ##檢視xiaoang屬于哪個組
接下來建立git庫
mkdir web.git //建立一個web.git庫
cd web.git
git init --bare --shared=group //初始化空庫為一個基本的可分享的庫
ok一個多人協作的git庫就建立成功了
其他人可以clone這個庫了
git clone ssh://your address/~/path/web.git
另一種方式我們通過git init直接初始化一個git目錄庫
git init --bare --shared=group web //意思是我們建立了一個目錄為web的git庫
我們還可以将該目錄的權限限定到指定的開發者, 上面的步驟我們建立了git使用者組,在這我們把web目錄的使用者權限改為git組
sudo chgrp -R git git/web/ //将git/web/目錄的組權限更改為git組
chmod -R g+rw web //将web目錄加上全局讀寫權限
chmod g+s `find web -type d` //找出web目錄裡所有建立檔案,并把組權限繼承目錄
至此隻有屬于git群組的使用者才能使用此git庫,是不是安全一些呢
其它補充知識:
上面步驟建立的git庫,是一個多人協作的空庫,并不是指你平時開發要用到的版本庫, 你需要通過git clone 生成一個自己的開發庫。
git clone ssh://your address/~/path/web.git
通過git remote -v 可以看到我們的公共庫的資訊
然後我們執行平常的開發寫入工作
echo 111 >> a.html
git add a.html
git commit -m'添加新的檔案'
git push origin master ## 将你的修改push到公共庫的master分支上
但更為規範的是,平常開發都應該建立一個分支,在需要上線的時候才會merge到master分支,然後再push到遠端庫的。
是以我們可以:
git checkout -b dev ### 建立一個dev的分支并切換到該分支下,
[[email protected]_dev_app ~/front/home]$ git checkout -b dev
Switched to a new branch 'dev'
git branch ###檢視分支資訊,帶*号表示目前所處在哪個分支
[[email protected]_dev_app ~/front/home]$ git branch
master
* dev
再補充
sudo chown -R xiaoang webhome/ 更改webhome/的使用者為xiaoang
chown [-R] 賬号名稱:使用者組名稱 檔案或目錄
git config pack.windowMemory 10m
git config pack.packSizeLimit 20m
git repack -a -d
github的ssh配置如下:
一 、
設定git的user name和email:
$ git config --global user.name "xuhaiyan"
$ git config --global user.email "[email protected]"
二、生成SSH密鑰過程:
1.檢視是否已經有了ssh密鑰:cd ~/.ssh
如果沒有密鑰則不會有此檔案夾,有則備份删除
2.生存密鑰:
$ ssh-keygen -t rsa -C “[email protected]”
按3個回車,密碼為空。
Your identification has been saved in /home/tekkub/.ssh/id_rsa.
Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.
The key fingerprint is:
………………
最後得到了兩個檔案:id_rsa和id_rsa.pub
3.添加密鑰到ssh:ssh-add 檔案名
需要之前輸入密碼。
4.在github上添加ssh密鑰,這要添加的是“id_rsa.pub”裡面的公鑰。