git版本控制gitosis的安裝與使用

2021-09-26 10:17:30 字數 2890 閱讀 7835

gitosis是git下的許可權管理工具,通過乙個特殊的倉庫(gitosis-admin.git)對git許可權進行管理。

一、服務端安裝並配置gitosis

(1)通過以下方式獲取到安裝包

root@wz:/home/git# git clone

(2)使用python進行安裝

root@wz:/home/git# python gitosis/setup.py install

(3)將authorized_keys移除或重新命名為authorized_keys.bak,gitosis 將為我們管理公鑰,後再重新新增公鑰,並且讓 gitosis 自動控制authorized_keys檔案。

root@wz:/home/git/.ssh# pwd

/home/git/.ssh

(4)將之前的git使用者bash登陸設定修改過來

vim /etc/passwd

46 git:x:1002:1002:,,,:/home/git:/bin/bash

(5)初始化 gitosis ,需要通過自己的公鑰來執行gitosis-init,首先將我本地的公鑰複製到服務端:

y@y:git$ scp /home/y/.ssh/id_rsa.pub  [email protected]:tmp/

[email protected]'s password: 

id_rsa.pub                                       100%  399     0.4kb/s   00:00    

y@y:git$ 

服務端執行以下操作:注意不是在超級管理員使用者下的:

wzh@wz:/home/git$ sudo -h -u git gitosis-init < ~/tmp/id_rsa.pub

這樣該公鑰的擁有者就能修改包含著 gitosis 設定的那個 git 倉庫了。

此時目錄結構如下:

同時.ssh下面會生成乙個:authorized_keys檔案

由gitosis管理的倉庫放在:repositories/目錄下面

此時在repositories/目錄下面初始化乙個空的倉庫:

二、客戶端操作gitosis

(1)現在可以試一下用初始化 gitosis 公鑰的擁有者身份 ssh 進伺服器:

說明 gitosis 認出了該使用者的身份,但由於沒有執行任何 git 命令所以它切斷了連線。

(2)轉殖 gitosis 的控制倉庫到本地:

注意:ip後面直接跟倉庫的名稱,無需路徑,gitosis-admin.git在服務端的           repositories/目錄下面。

gitosis-admin目錄結構如下:

gitosis.conf檔案是用來設定使用者、倉庫和許可權的控制檔案。

keydir 目錄則是儲存所有具有訪問許可權使用者公鑰的地方每人乙個。

(3)修改 gitosis.conf配置檔案並同步到服務端:其操作方式與普通的git倉庫一致,

提交到服務端之後,檢視服務端:

(4)如果是多人協助開發同用乙個版本庫,則需要將他們每個人的公鑰檔案新增到keydir資料夾然後push到服務端。

檔案的命名將決定在gitosis.conf配置檔案中的稱呼。

例如:參考《progit》

現在我們為 john,josie 和 jessica 新增公鑰:

$ cp /tmp/id_rsa.john.pub keydir/john.pub

$ cp /tmp/id_rsa.josie.pub keydir/josie.pub

$ cp /tmp/id_rsa.jessica.pub keydir/jessica.pub

然後把他們都加進 『mobile』 團隊,讓他們對iphone_project具有讀寫許可權:

[group mobile]

writable = iphone_project

members = scott john josie jessica

gitosis 也具有簡單的訪問控制功能。如果想讓 john 只有讀許可權,可以這樣做:

[group mobile]

writable = iphone_project

members = scott josie jessica

[group mobile_ro]

readonly = iphone_project

members = john

現在 john 可以轉殖和獲取更新,但 gitosis 不會允許他向專案推送任何內容。

git版本控制

1.git 是乙個開源的分布式版本控制系統,可以有效 高速的處理從很小到非常大的專案版本 管理。2.git配置管理 一般,有乙個 集中庫,包含4個分支 qa才能merge production 發布生產,出現生產問題,轉hotfix 研發經理 hotfix 解決緊急生產問題,測試後轉producti...

版本控制 Git

git 是目前世界上最先進的開源的分布式版本控制系統 沒有之一 用於敏捷高效地處理任何或小或大的專案。git 是 linus torvalds 為了幫助管理 linux核心開發而開發的乙個開放原始碼的版本控制軟體。git 與常用的版本控制工具 cvs,subversion 等不同,它採用了分布式版本...

GIT版本控制

不同情況下,實現版本回退 1.對於修改內容後,未add,未commit 可以利用git checkout 檔名 2.對於修改內容後,add,未commit get reset head 檔名 git checkout 檔名 3.對於修改內容後,add,commit 可以回到任何乙個版本 root g...