macgit本地伺服器搭建
Ⅰ 如何在mac中建立自己的git本地庫
進入kernel/common,這里不需要用到repo,直接用Git即可。gitclonegit://android.git.kernel.org/kernel/common.git這可能需要不少的時間,因為它會把整個LinuxKernel的代碼復制下來。如果需要某個branch的代碼,用gitcheckout即可。比如
Ⅱ 使用Gitolite搭建Git伺服器
Git服務的管理工具,主要有如下幾種。
Gitolite 使用perl語言編寫,維護和更新比較積極,下面測試使用Gitolite搭建Git伺服器。
一般新建用戶 ~/.ssh/ 目錄是不存在的。
生成路徑會在ssh-kengen執行後給出,也可修改。windows下生成路徑默認位於 C:/user/用戶名/.ssh 下。
此時, gitolite 會初始化兩個倉庫,同時創建 authorized_keys 文件
管理庫中有兩個目錄, conf/ 和 keydir/ 。
倉庫的創建通過編輯 gitolite-admin/conf/gitolite.conf 即可,然後將配置後的文件上傳伺服器。
若本地已有倉庫repo2,將其添加到伺服器
gitolite可以通過用戶組的方式進行管理
如上提示,需要輸入密碼。
需要安裝 openssh ,並將 gitolite 用戶添加在 sshusers 組中,有的伺服器可能是 ssh 組。
計算機領域的Cookbook指的是實用經典案例的意思,是對一些普遍性問題的解決方案的總結和整理。
Ⅲ MAC配置git環境
1.一般MAC都會自帶git,所以在使用前可以先查看本地git的版本,使用命令如下:
hxgdeMacBook-Pro:~ hxg$ git --version
2.在本地git中添加git賬戶和郵箱,用於每次提交時記日誌(log)
hxgdeMacBook-Pro:~ hxg$ git config --global user.name "hxg"
hxgdeMacBook-Pro:~ hxg$ git config --global user.email "[email protected]"
3.檢查之前是否生成過密鑰
hxgdeMacBook-Pro:~ hxg$ cd ~/.ssh
出現:-bash: cd: /Users/hxg/.ssh: No such file or directory
所以我們要新建密鑰
生成密鑰使用如下命令:
hxgdeMacBook-Pro:~ hxg$ ssh-keygen -t rsa -C "hxgMacBook"
命令要求輸入密碼,不用輸,三個回車即可
4.配置公鑰:
使用hxgdeMacBook-Pro:~ hxg$ cd ~/.ssh命令進入.ssh文件下
查看下面新生成的文件:
hxgdeMacBook-Pro:.ssh hxg$ ls
結果如下:
hxgdeMacBook-Pro:.ssh hxg$ ls
id_rsa id_rsa.pub
5.在遠程倉庫gitlab上添加title和key,和本地的一致。title可以自己取一個容易區分的名字,key為id_rsa.pub中的內容(全部復制,可用cat id_rsa.pub命令打開查看其中的內容)
Ⅳ 在Linux下搭建Git伺服器
眾所周知,版本系統在開發環境中是必不可少的,但是我們可以把代碼免費的託管到GitHub上,如果我們不原意公開項目的源代碼,公司又不想付費使用,那麼我們可以自己搭建一台Git伺服器,可以用Gitosis來管理公鑰,還是比較方便的。
搭建環境:
伺服器 CentOS6.6 + git(version 1.8.3.1)
客戶端 Windows10 + git(version 2.11.1.windows.1)
1. 安裝Git相關軟體
Linux是伺服器端系統,Windows作為客戶端系統,分別安裝Git
安裝客戶端:
下載 Git for Windows,地址:https://git-for-windows.github.io/
安裝完之後,可以使用Git Bash作為命令行客戶端。
安裝Gitosis
出現下面的信息表示安裝成功了
2. 伺服器端創建git用戶來管理Git服務
3. 配置公鑰
在Windows上配置管理者,git伺服器需要一些管理者,通過上傳開發者機器的公鑰到伺服器,添加成為git伺服器的管理者,打開git命令行
4. 配置gitosis
使用git用戶並初始化gitosis
在Windows上機器上clone gitosis-admin到管理者主機
gitosis.conf: git伺服器配置文件
keydir: 存放客戶端公鑰
配置 gitosis.conf 文件
在Windows管理者機器上創建本地test倉庫,並上傳到git服務端
提交到遠程伺服器
服務端會自動創建test倉庫
5.添加其他git用戶開發者
由於公司開發團隊人數不斷增多,手動添加開發者私鑰到/home/git/.ssh/authorized_keys比較麻煩,通過上面的Windows機器的管理者統一收集其他開發者的私鑰id_rsa.pub文件,然後傳到伺服器上,配置好後,用戶即獲得項目許可權,可以從遠程倉庫拉取和推送項目,達到共同開發項目。
推送完成後,新加進來的開發者就可以進行項目的開發了,後續增加人員可以這樣添加進來,開發者直接把倉庫clone下來就可以了。
Ⅳ 如何在Mac上快速搭建git伺服器
Git支持的協議主要是四種:
本地: 需要文件共享系統,許可權不好控制
HTTP:速度慢
SSH:同時支持讀寫操作,不支持匿名的讀取(Git默認協議)
GIT:最快
從
搭建的難易程度和特點綜合篩選,最合適的還是ssh,並且大部分伺服器上基本都有ssh服務,所以省去了不少麻煩。一個最基本的思路是給每一個人一個
ssh帳號,這樣大家就可以通過用戶名和口令來訪問了,但是顯然這不是一個好的選擇,這個做法有些多餘,並且對於repo的許可權很難管理。
Ⅵ 如何在mac下遠程搭建git伺服器
為有讀寫許可權的用戶建立一個分組。根據你的操作系統,你可以用groupadd命令來實現,用vigr來編輯分組文件,或者直接編輯/etc/group文件。在最後,你會在/etc/group文件中看到如下一行
?
1
repogroup:*:10005:marry,john,violet
其中,repogroup是准許接入這個倉庫的組的名字。10005是一個獨一無二的分組識別數字,marry,john,violet則是獲准接入這個倉庫的用戶。
決定Git倉庫的路徑。它既可以放在你的home路徑下(e.g. /home/yourname/gitroot),也可以放在一個專用的路徑下(e.g. /var/gitroot).
配置許可權,讓Git用戶可以訪問這個目錄
?
1
2
chmod g+rx /path-to/gitroot
chown :grouprepo /path-to/gitroot
建立新的Git倉庫,叫做newrepo
?
1
2
cd /path-to/gitroot
git init --bare newrepo.git
建立路徑認證,以允許用戶組訪問,同時有針對性的設置Git
?
1
2
3
4
5
cd newrepo.git
chown -R :grouprepo .
git config core.sharedRepository group
find . -type d -print0 | xargs -0 chmod 2770
find . -type f -print0 | xargs -0 chmod g=u
設置提交(commit)的email通知(commit是一條命令),這樣當有新的修改提交到倉庫的時候,開發者們將會收到一封關於修改內容一覽的電子郵件。
?
1
2
3
4
5
6
7
echo 'One-line project description' >description
git config --local hooks.mailinglist [email protected]<script cf-hash="f9e31" type="text/javascript">
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */</script>,[email protected]<script cf-hash="f9e31" type="text/javascript">
/* <![CDATA[ */!function(){try{var t="currentScript"in document?document.currentScript:function(){for(var t=document.getElementsByTagName("script"),e=t.length;e--;)if(t[e].getAttribute("cf-hash"))return t[e]}();if(t&&t.previousSibling){var e,r,n,i,c=t.previousSibling,a=c.getAttribute("data-cfemail");if(a){for(e="",r=parseInt(a.substr(0,2),16),n=2;a.length-n;n+=2)i=parseInt(a.substr(n,2),16)^r,e+=String.fromCharCode(i);e=document.createTextNode(e),c.parentNode.replaceChild(e,c)}}}catch(u){}}();/* ]]> */</script>,...
git config --local hooks.emailprefix '[DI-PR] '
git config --local hooks.showrev "git show -C %s; echo"
git config --local hooks.emailmaxlines 100
通過設置一個稱為鉤子(hook)的東東,來創建這些email通知。
Ⅶ 如何在mac上使用git連接私有的gitlab伺服器
首先要 ssh遠程登陸工具比secureCRT等
案 基於SSH直接搭建
Git支持協議主要四種:
本: 需要文件共享系統許可權控制
HTTP:速度慢
SSH:同支持讀寫操作支持匿名讀取(Git默認協議)
GIT:快
搭建難易程度特點綜合篩選合適ssh並且部伺服器基本都ssh服務所省少麻煩基本思路給每ssh帳號家通用戶名口令訪問顯選擇做些余並且於repo許可權難管理
使用Github候利用rsa.pub公鑰/私鑰式服務端擁用戶公鑰(*.pub)跨繁瑣口令直接認證提交服務端根據同用戶身份其許可權著更加靈管理我採用種式
服務端
使遠程庫訪問更加直觀先伺服器創建名git賬戶clone候面格式:
git clone git@server:some.git
創建新用戶創建repo等目錄
$sudo adser git
$su git
$cd ~
$mkdir repos
HOME.ssh目錄沒則創建創建authorized_keys文件文件用管理所git用戶公鑰面用戶於項目著R+W許可權
客戶端
於每客戶端我需要密鑰公鑰Github用戶.ssh目錄定id_rsa.pubid_rsa兩文件其第系統公鑰另自要保存密鑰沒終端執行:ssh-keygen完自公鑰提交給管理員注冊行
完
步管理員團隊員公鑰添加authorized_keys比同susie加入:
$ cat susie.pub >> authorized_keys
至家通git@server:repos/some.git訪問公共版本庫
問題
安全問題員登錄git用戶shell,細節許可權支等控制
管理麻煩新建repo,或者增加員比較麻煩尤其修改候
案二 使用Gitolite服務
Gitolite 基於SSH協議構建便管理git repo應用通其源碼安裝.
安裝
安裝按照官給定文檔輕易實現:
$ git clone git://github.com/sitaramc/gitolite
$ mkdir -p $HOME/bin
$ gitolite/install -to $HOME/bin
$ gitolite setup -pk YourName.pub
執行條命令候gitolite識別則通面兩種式解決:
gitolite添加PATH面
通$HOME/bin/gitolite setup -pk YourName.pub 執行
至gitolite服務端搭建完畢發現HOME目錄增加文件projects.list目錄repositories,者我版本倉庫每新建repo候其創建
使用
候說gitolite管理模式創建gitolite-adminrepo管理員通像repo提交配置文件實現git伺服器控制
首先repo導入我workspace:前需要配置本ssh,gitolite要求管理員本密鑰其注冊公鑰名字致比我安裝候指定 -pk面 admin.pub 則管理員本需要由admin應私鑰我通~/.ssh/config進行配置(註:些系統用confMac OSX 效能用config).
host gitolite
user git
hostname yourhostname.com
port 22
identityfile ~/.ssh/admin
我訪問gitolite候自根據配置文件執行配置完根據面命令gitolite-admin轉移本
git clone gitolite:gitolite-admin.git
克隆完發現gitolite-admin面兩目錄其conf保存配置文件我通編輯面gitolite.conf文件管理git伺服器keydir目錄保存用戶公鑰pub文件
我講修改repo 提交候gitolite自應用些配置管理程便
配置規則
打gitolite.conf文件看其示例:
To add new users alice, bob, and carol, obtain their public keys and add them to 'keydir' as alice.pub, bob.pub, and carol.pub respectively.
To add a new repo 'foo' and give different levels of access to these users, edit the file 'conf/gitolite.conf' and add lines like this:
repo foo
RW+ = alice
RW = bob
R = carol
面配置文件新建repo foo並且添加三位項目員每許可權同提交push管理便效
視化
我能需要web界面管理些項目我目前知道三種式:
git源碼自帶組件cgi腳本實現使用gitolite服務
gitlab源框架基於ROR新版本再使用gitolite服務
FB源PHP框架 phabricator功能高端檔
Ⅷ mac搭建本地伺服器
啟動伺服器
MacOS 自帶Apatch 伺服器。在safari中輸入 http://127.0.0.1/ ,如果頁面出現 it works,則代表訪問成功。
如果訪問失敗,可以在終端輸入:
sudo apachectl start
啟動後,我們在瀏覽器輸入 http://localhost ,界面展示 「 It works! 」
2.關閉伺服器
sudo apachectl stop
3.重啟伺服器
sudo apachectl restart
注意
Apache伺服器默認的web根目錄在:/Library/WebServer/Documents
Apache的配置文件在:/etc/apache2
添加文件到本地伺服器
1、前往Apache伺服器的文件地址:
/Library/WebServer/Documents
2、准備文件,如我保存了的首頁 jianshu.html
3、復制 jianshu.html 文件到步驟1 中的地址
查看添加的文件
在Safari 中輸入 http://127.0.0.1/jianshu 即可看到保存的網頁
同樣你也可以用 http://127.0.0.1/PoweredByMacOSX.gif 訪問文件夾中的圖片。
手機/其他電腦 訪問本機伺服器
1、找到本機 IP 地址
打開 設置-網路,你可以看到下圖
那麼我的IP就是:10.198.44.51
在本機safari中輸入 http://10.198.44.51 即可訪問和 http://127.0.0.1 一樣的效果
輸入 http://10.198.44.51/jianshu 可訪問 http://127.0.0.1/jianshu 一樣效果的內容2、在手機、其他電腦測試
必須保證手機和其他電腦和本機在同一區域網
在手機的safari中輸入 http://10.198.44.51/jianshu 即可訪問成功
Ⅸ xcode的git伺服器怎麼搭建
Xcode下配置git
本地git環境:
1、xcode自帶git環境,使用git需要安裝命令行工具(Preferences->Downloads->Components->Command Line Tools)
2、在項目文件夾根目錄用**命令行**添加一個倉庫
3、在Xcode下添加倉庫(Organizer->Repositories->add Repository[左下角的'+'按鈕])添加路徑為本地項目的路徑
4、提交項目到git(File->source control->commit)
我用的是小鳥雲伺服器,這些都是他們告訴我的。
希望對你有幫助,望採納!
Ⅹ mac 怎麼安裝git 伺服器
本文介紹如何在 mac 機器上創建 Git 伺服器,總體思路是:使用gitosis來簡化創建過程,在用作伺服器的機器上創建一個名為 git 的賬戶來創建 git 伺服器,其他客戶端通過 ssh 機制訪問 git 伺服器。
一,創建 git 賬戶
1,在用作伺服器的機器上創建 git 賬戶。我們可以通過 System Preferences->accounts 來添加。在這里我添加一個 git 的 administrator 賬戶,administrator 不是必須的,在這里僅僅為了方便。
2,設置遠程訪問
logout 當前賬戶,使用 git 賬戶登錄;在 System Preferences->Sharing 中,勾選 Remote Login。
二,下載安裝 gitosis
1,Mac OSX Yosemite 默認已經為我們安裝了 Git 和 python,可以使用如下命令查看其版本信息:
yourname:~ git$git--version
git version 2.3.2 (Apple Git-55)
yourname:~ git$python--version
Python 2.7.9
2,通過命令 git clone [email protected]:tv42/gitosis.git 來下載 gitosis
yourname:~ git$ git clone [email protected]:tv42/gitosis.git
Cloning into gitosis
remote: Counting objects: 614, done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 614 (delta 434), reused 594 (delta 422)
Receiving objects: 100% (614/614), 93.82 KiB | 45 KiB/s, done.
Resolving deltas: 100% (434/434), done.
3,進入 gitosis 目錄,使用命令 sudo python setup.py install 來執行 python 腳本來安裝 gitosis。
yourname:~ git$ cd gitosis/yourname:gitosis git$ sudo python setup.py install
running install
running bdist_egg
running egg_info
creating gitosis.egg-info
……
Using /Library/Python/2.6/site-packages/setuptools-0.6c9-py2.6.egg
Finished processing dependencies for gitosis==0.2
三,製作 ssh rsa 公鑰
1,回到 client 機器上,製作 ssh 公鑰。在這里我的使用同一台機器上的另一個賬戶作為 client。如果作為 client 的機器與作為 server 的機器不是同一台,也是類型的流程:製作公鑰,放置到服務的 /tmp 目錄下。只不過在同一台機器上,我們可以通過開啟另一個 terminal,使用 su 切換到 local 賬戶就可以同時操作兩個賬戶。
yourname:~ git$ su local_accountPassword:bash-3.2$ cd ~
bash-3.2$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/local_account/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:Your identification has been saved in /Users/local_account/.ssh/id_rsa.
Your public key has been saved in /Users/local_account/.ssh/id_rsa.pub.
bash-3.2$ cd .ssh
bash-3.2$ ls
id_rsa id_rsa.pub
bash-3.2$ cp id_rsa.pub /tmp/yourame.pub
在上面的命令里,首先通過 su 切換到 local 賬戶(只有在同一台機器上才有效),然後進入到 local 賬戶的 home 目錄,使用 ssh-keygen -t rsa 生成 id_rsa.pub,最後將該文件拷貝放置到 /tmp/yourname.pub,這樣 git 賬戶就可以訪問 yourname.pub了,在這里改名是為了便於在 git 中辨識多個 client。
四,使用 ssh 公鑰初始化 gitosis
1,不論你是以那種方式(郵件,usb等等)拷貝 yourname.pub 至伺服器的 /tmp/yourname.pub。下面的流程都是一樣,登入伺服器機器的 git 賬戶,進入先前提到 gitosis 目錄,進行如下操作初始化 gitosis,初始化完成後,會在 git 的 home 下創建 repositories 目錄。
yourname:gitosis git$ sudo -H -u git gitosis-init < /tmp/yourname.pub
Initialized empty Git repository in /Users/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /Users/git/repositories/gitosis-admin.git/
在這里,會將該 client 當做認證受信任的賬戶,因此在 git 的 home 目錄下會有記錄,文件 authorized_keys 的內容與 yourname.pub 差不多。
yourname:~ git$ cd ~yourname:~ git$ cd .sshyourname:.ssh git$ ls
authorized_keys
我們需要將 authorizd_keys 稍做修改,用文本編輯器打開它,刪除裡面的"command="gitosis-serve yourname",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty " 這一行:
yourname:.ssh git$ open -e authorized_keys
然後,我們對 post-update 賦予可寫許可權,以便 client 端可以提交更改。
yourname:gitosis git$ sudo chmod 755 /Users/git/repositories//gitosis-admin.git/hooks/post-update
Password:
yourname:.ssh git$ cd ~
yourname:~ git$ cd repositories/
yourname:repositories git$ ls
gitosis-admin.git
yourname:repositories git$
在上面的命令中可以看到,gitosis 也是作為倉庫的形式給出,我們可以在其他賬戶下 checkout,然後對 gitosis 進行配置管理等等,而無需使用伺服器的 git 賬戶進行。
最後一步,修改 git 賬戶的 PATH 路徑。
yourname:gitosis git$ touch ~/.bashrc
yourname:gitosis git$ echo PATH=/usr/local/bin:/usr/local/git/bin:$PATH > .bashrc
yourname:gitosis git$ echo export PATH >> .bashrc
yourname:gitosis git$ cat .bashrc
PATH=/usr/local/bin:/usr/local/git/bin:$PATHexport PATH
至此,伺服器的配置完成。
五,client 配置
1,回到 local 賬戶,首先在 terminal 輸入如下命令修改 local 的 git 配置:
bash-3.2$ git config --global user.name "yourgitname"bash-3.2$ git config --global user.email "[email protected]"
2,測試伺服器是否連接正確,將 10.1.4.211 換成你服務的名稱或伺服器地址即可。
yourname:~ local_account$ ssh [email protected] login: Mon Nov 7 13:11:38 2011 from 10.1.4.211
3,在本地 clone 伺服器倉庫,下面以 gitosis-admin.git 為例:
bash-3.2$ git clone [email protected]:repositories/gitosis-admin.git
Cloning into gitosis-adminremote: Counting objects: 5, done.remote: Compressing objects: 100% (5/5), done.remote: Total 5 (delta 0), reused 5 (delta 0)
Receiving objects: 100% (5/5), done.
bash-3.2$ ls
Desktop InstallApp Music Sites
Documents Library Pictures gitosis-admin
Downloads Movies Public
bash-3.2$ git
在上面的輸出中可以看到,我們已經成功 clone 伺服器的 gitosis-admin 倉庫至本地了。
4,在本地管理 gitosis-admin:
進入 gitosis-admin 目錄,我們來查看一下其目錄結構:gitosis.conf 文件是一個配置文件,裡面定義哪些用戶可以訪問哪些倉庫,我們可以修改這個配置;`keydir` 是存放ssh 公鑰的地方。
bash-3.2$ cd gitosis-admin/
bash-3.2$ ls
gitosis.conf keydir
bash-3.2$ cd keydir/
bash-3.2$ ls
yourname.pub
我們只需要將其他 client 產生的 ssh 公鑰添加到 keydir 目錄下,並在 gitosis.conf 文件中配置這些用戶可以訪問的倉庫(用戶名與放置在 keydir 下sh 公鑰名相同,這就是在前面我們要修改ssh 公鑰名的原因),然後將改動提交至伺服器,這樣就可以讓其他的 client 端訪問伺服器的代碼倉庫了。
5,倉庫許可權管理
gitosis.conf文件是用來設置用戶、倉庫和許可權的控制文件。keydir 目錄則是保存所有具有訪問許可權用戶公鑰的地方— 每人一個。在 keydir 里的文件名(比如上面的 yourname.pub)應該跟你的不一樣 — Gitosis 會自動從使用 gitosis-init 腳本導入的公鑰尾部的描述中獲取該名字。
看一下 gitosis.conf 文件的內容,它應該只包含與剛剛克隆的 gitosis-admin 相關的信息:
$ cat gitosis.conf
[gitosis]
[group gitosis-admin]
members = scott
writable = gitosis-admin
它顯示用戶 yourname — 初始化 Gitosis 公鑰的擁有者 — 是唯一能管理 gitosis-admin 項目的人。
現在我們來添加一個新項目。為此我們要建立一個名為 mobile 的新段落,在其中羅列手機開發團隊的開發者,以及他們擁有寫許可權的項目。由於 yourname 是系統中的唯一用戶,我們把他設為唯一用戶,並允許他讀寫名為 iphone_project 的新項目:
[group mobile]
members = scott
writable = iphone_project
修改完之後,提交 gitosis-admin 里的改動,並推送到伺服器使其生效:
$ git commit -am 'add iphone_project and mobile group'[master 8962da8] add iphone_project and mobile group
1 file changed, 4 insertions(+)
$ git push origin master
Counting objects: 5, done.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 272 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@gitserver:gitosis-admin.git
fb27aec..8962da8 master -> master
6,添加新項目到倉庫種
在新工程 iphone_project 里首次推送數據到伺服器前,得先設定該伺服器地址為遠程倉庫。但你不用事先到伺服器上手工創建該項目的裸倉庫— Gitosis 會在第一次遇到推送時自動創建:
$ git remote add origin git@gitserver:iphone_project.git
$ git push origin master
Initialized empty Git repository in /opt/git/iphone_project.git/
Counting objects: 3, done.
Writing objects: 100% (3/3), 230 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@gitserver:iphone_project.git
* [new branch] master -> master
請注意,這里不用指明完整路徑(實際上,如果加上反而沒用),只需要一個冒號加項目名字即可 — Gitosis 會自動幫你映射到實際位置。
要和朋友們在一個項目上協同工作,就得重新添加他們的公鑰。不過這次不用在伺服器上一個一個手工添加到 ~/.ssh/authorized_keys 文件末端,而只需管理 keydir 目錄中的公鑰文件。文件的命名將決定在 gitosis.conf 中對用戶的標識。現在我們為 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]
members = scott john josie jessica
writable = iphone_project
如果你提交並推送這個修改,四個用戶將同時具有該項目的讀寫許可權。
Gitosis 也具有簡單的訪問控制功能。如果想讓 John 只有讀許可權,可以這樣做:
[group mobile]
members = scott josie jessica
writable = iphone_project
[group mobile_ro]
members = johnreadonly = iphone_project
現在 John 可以克隆和獲取更新,但 Gitosis 不會允許他向項目推送任何內容。像這樣的組可以隨意創建,多少不限,每個都可以包含若干不同的用戶和項目。甚至還可以指定某個組為成員之一(在組名前加上 @ 前綴),自動繼承該組的成員:
[group mobile_committers]
members = scott josie jessica
[group mobile]
members = @mobile_committers
writable = iphone_project
[group mobile_2]
members = @mobile_committers john
writable = another_iphone_project
如果遇到意外問題,試試看把 loglevel=DEBUG 加到 [gitosis] 的段落(譯註:把日誌設置為調試級別,記錄更詳細的運行信息。)。如果一不小心搞錯了配置,失去了推送許可權,也可以手工修改伺服器上的 /home/git/.gitosis.conf 文件 — Gitosis 實際是從該文件讀取信息的。它在得到推送數據時,會把新的 gitosis.conf 存到該路徑上。所以如果你手工編輯該文件的話,它會一直保持到下次向 gitosis-admin 推送新版本的配置內容為