<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-179  評論-666  文章-29  trackbacks-0

    一、安裝git服務器所需軟件

    打開終端輸入以下命令:

    ubuntu:~$ sudo apt-get install git-core openssh-server openssh-client
    git-core是git版本控制核心軟件

    安裝openssh-server和openssh-client是由于git需要通過ssh協(xié)議來在服務器與客戶端之間傳輸文件

    然后中間有個確認操作,輸入Y后等待系統(tǒng)自動從鏡像服務器中下載軟件安裝,安裝完后會回到用戶當前目錄。如果

    安裝提示失敗,可能是因為系統(tǒng)軟件庫的索引文件太舊了,先更新一下就可以了,更新命令如下:

    ubuntu:~$ sudo apt-get update 

    更新完軟件庫索引后繼續(xù)執(zhí)行上面的安裝命令即可。

    安裝python的setuptools和gitosis,由于gitosis的安裝需要依賴于python的一些工具,所以我們需要先安裝python

    的setuptools。

    執(zhí)行下面的命令:

    ubuntu:~$ sudo apt-get install python-setuptools
    這個工具比較小,安裝也比較快,接下來準備安裝gitosis,安裝gitosis之前需要初始化一下服務器的git用戶信息,這個隨便填。

    ubuntu:~$ git config --global user.name "myname"
    ubuntu:~$ git config --global user.email "******@gmail.com"

    初始化服務器用戶信息后,就可以安裝gitosis了,gitosis主要是用于給用戶授權,設置權限也算是很方便的。

    可以通過以下命令獲取gitosis版本文件

    ubuntu:~$ git clone https://github.com/res0nat0r/gitosis.git
    注意:中間有兩個是數(shù)字零

    獲取gitosis文件后,進入到文件目錄下面

    ubuntu:/tmp$ cd gitosis/

    接著使用python命令安裝目錄下的setup.py的python腳本進行安裝

    ubuntu:/tmp/gitosis$ sudo python setup.py install

    到這里,整個安裝步驟就完成了,下面就開始對git進行一些基本的配置。

    二、創(chuàng)建git管理員賬戶、配置git

    創(chuàng)建一個賬戶(git)作為git服務器的管理員,可以管理其他用戶的項目權限。

    ubuntu:/tmp/gitosis$ sudo useradd -m git
    ubuntu:/tmp/gitosis$ sudo passwd git

    然后再/home目錄下創(chuàng)建一個項目倉庫存儲點,并設置只有git用戶擁有所有權限,其他用戶沒有任何權限。

    ubuntu:/tmp/gitosis$ sudo mkdir /home/gitrepository
    ubuntu:/tmp/gitosis$ sudo chown git:git /home/gitrepository/
    ubuntu:/tmp/gitosis$ sudo chmod 700 /home/gitrepository/

    由于gitosis默認狀態(tài)下會將倉庫放在用戶的repositories目錄下,例如git用戶的倉庫地址默認在/home/git/repositories/目錄下,這里我們需要創(chuàng)建一個鏈接映射。讓他指向我們前面創(chuàng)建的專門用于存放項目的倉庫目錄/home/gitrepository。

    ubuntu:/tmp/gitosis$ sudo ln -s /home/gitrepository /home/git/repositories

    這里我將在服務器端生成ssh公鑰,如果想在其他機器上管理也可以在其他機器上生成一個ssh的公鑰。

    ubuntu:/home/git$ ssh-keygen -t rsa

    這里會提示輸入密碼,我們不輸入直接回車即可。

    然后用剛生成公鑰id_rsa.pub來對gitosis進行初始化。

    向gitosis添加公鑰并初始化:

    $ cp ~/.ssh/id_rsa.pub /tmp

    $ sudo -H -u gitadmin gitosis-init < /tmp/id_rsa.pub

    Ubuntu完美搭建Git服務器

    出現(xiàn)如上信息說明gitosis已經(jīng)初始化成功。

    gitosis主要是通過gitosis-admin.git倉庫來管理一些配置文件的,如用戶權限的管理。這里我們需要對其中的一個post-update文件添加可執(zhí)行的權限。

    ubuntu:/home/git$ sudo chmod 755 /home/gitrepository/gitosis-admin.git/hooks/post-update

    三、服務器上創(chuàng)建項目倉庫

    使用git賬戶在服務器上創(chuàng)建一個目錄(mytestproject.git)并初始化成git項目倉庫。

    ubuntu:/home/git$ su git
    $ cd /home/gitrepository
    $ mkdir mytestproject.git
    $ git init --bare mytestproject.git
    $ exit

    如果出現(xiàn)以下信息就說明已經(jīng)成功創(chuàng)建了一個名為mytestproject.git的項目倉庫了,新建的這個倉庫暫時還是空的,不能被客戶端clone,還需要對gitosis進行一些配置操作。

    四、使用gitosis管理用戶操作項目的權限

    首先需要在前面生成ssh公鑰(用來初始化gitosis)的機器上將gitosis-admin.git的倉庫clone下來。

    在客戶端機器上新建一個目錄用于存放gitosis-admin.git倉庫

    ubuntu:~$ mkdir gitadmin
    ubuntu:~$ cd gitadmin/
    ubuntu:~/gitadmin$ git clone git@192.168.1.106:gitosis-admin.git

    clone正確會顯示以下信息

    Ubuntu完美搭建Git服務器

    clone下來會有一個gitosis.conf的配置文件和一個keydir的目錄。gitosis.conf用于配置用戶的權限信息,keydir主要用戶存放ssh公鑰文件(一般以“用戶名.pub”命名,gitosis.conf配置文件中需使用相同用戶名),用于認證請求的客戶端機器。

    現(xiàn)在讓需要授權的用戶使用前面的方式各自在其自己的機器上生成相應的ssh公鑰文件,管理員把他們分別按用戶名命名好,復制到keydir目錄下。

    ubuntu:~$ cp /home/aaaaa/Desktop/zhangsan.pub /home/aaaaa/gitadmin/gitosis-admin/keydir/

    ubuntu:~$ cp /home/aaaaa/Desktop/lisi.pub /home/aaaaa/gitadmin/gitosis-admin/keydir/

    繼續(xù)編輯gitosis.conf文件

    [gitosis]

    [group gitosis-admin] 
    ####管理員組
    members = charn@ubuntu 
    ####管理員用戶名,需要在keydir目錄下找到相應的.pub文件,多個可用空格隔開(下同)
    writable = gitosis-admin####可寫的項目倉庫名,多個可用空格隔開(下同)

    [group testwrite] 
    ####可寫權限組
    members = zhangsan####組用戶
    writable = mytestproject####可寫的項目倉庫名

    [group
     testread] ####只讀權限組
    members =lisi####組用戶
    readonly= mytestproject####只讀項目倉庫名

    因為這些配置的修改只是在本地修改的,還需要推送到服務器中才能生效。

    ubuntu:~/gitadmin/gitosis-admin$ git add .
    ubuntu:~/gitadmin/gitosis-admin$ git commit -am "add a user permission"
    ubuntu:~/gitadmin/gitosis-admin$ git push origin master

    推送成功會顯示下面提示信息

    Ubuntu完美搭建Git服務器

    又是后新增的用戶不能立即生效,這時候需要重新啟動一下sshd服務

    ubuntu:~/gitadmin/gitosis-admin$ sudo /etc/init.d/ssh restart

    現(xiàn)在,服務端的git就已經(jīng)安裝和配置完成了,接下來就需要有權限的組成員在各自的機器上clone服務器上的相應

    項目倉庫進行相應的工作了。

    五、客戶端(windows)使用git

    下載安裝windows版本的git客戶端軟件,下載地址:http://msysgit.github.io/

    安裝完成后右鍵菜單會出現(xiàn)幾個git相關的菜單選項,我們主要使用其中的git
     bash通過命令行來進行操作。

    在本地新建一個目錄,使用git初始化這個目錄,然后再里面新建一個文本文件用于測試,最后關聯(lián)到git服務器倉庫

    中的相關項目,最后上傳本地版本到服務器。

    $ mkdir testgit
    $ cd testgit
    $ git init
    $ echo "this is a test text file,will push to server" > hello.txt
    $ git add .
    $ git commit -am "init a base version,add a first file for push to server"
    $ git remote add origin git@serverip:mytestproject.git
    $ git push origin master

    這樣服務端就創(chuàng)建好了一個mytestproject.git的倉庫的基礎版本了,現(xiàn)在其他組員只要從服務端進行clone就可以了。

    window下面進入到需要克隆的本地目錄下面右鍵選擇git bash選項,輸入

    $ git clone git@serverip:mytestproject.git

    就可以把項目clone到本地倉庫了。

    下面進行簡單的修改和提交操作

    $ cd mytestproject
    $ echo "this is another text file created by other" >another.txt
    $ git add .
    $ git commit -am "add a another file by other"
    $ git push origin master

    最后推送到服務器成功會顯示如下信息

    Ubuntu完美搭建Git服務器


    gitolite搭建git倉庫(服務端+客戶端)

    http://blog.csdn.net/ChiChengIT/article/details/49863383

    posted on 2018-03-13 15:35 Alpha 閱讀(1199) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 亚欧日韩毛片在线看免费网站| 美女尿口扒开图片免费| 亚洲电影免费在线观看| 亚洲一区无码中文字幕| 久久99精品免费一区二区| 中文字幕人成人乱码亚洲电影| 国产免费久久精品99久久| 精品国产亚洲男女在线线电影| 中文字幕免费观看全部电影| 亚洲精品二区国产综合野狼| 亚在线观看免费视频入口| 亚洲综合国产精品| 四虎永久在线观看免费网站网址| 亚洲综合中文字幕无线码| 日本无卡码免费一区二区三区| 亚洲人成电影网站免费| 免费欧洲美女牲交视频| 一级毛片免费播放男男| 亚洲AV无码第一区二区三区| 亚洲视频免费一区| 亚洲国产一区二区三区在线观看 | 亚洲无限乱码一二三四区| 无码乱肉视频免费大全合集| 色偷偷噜噜噜亚洲男人| 中文字幕亚洲综合久久菠萝蜜| 人人揉揉香蕉大免费不卡| 亚洲人成电影网站久久| 亚洲天堂免费在线视频| 无码成A毛片免费| 亚洲欧美日韩综合久久久久| 久久久久亚洲爆乳少妇无| 日韩精品无码专区免费播放| 亚洲色大成网站www尤物| 久久精品亚洲男人的天堂 | 无人在线观看完整免费版视频| 激情无码亚洲一区二区三区 | 鲁丝片一区二区三区免费| jlzzjlzz亚洲jzjzjz| 久久久青草青青国产亚洲免观 | 精品国产一区二区三区免费看| 72pao国产成视频永久免费|