centos 6.3 搭建git/gitosis/gitweb

來源:互聯網
上載者:User

標籤:http   使用   strong   檔案   os   art   

1. git的安裝和配置

(1)使用yum源安裝git
  1. yum install git

(2)建立git使用者並設定密碼

  1. #useradd --home /home/git git
  2.  #passwd git 
  3. //注意這裡要設定一個密碼,建議不要不設密碼,網上很多資料都不設密碼
(3)建立一個git倉庫,驗證git是否可用
  • 在使用git之前,要設定git的兩個全域變數,設定方式為:
    1. # git config --global user.name "dylan"
    2. # git config --global user.email "[email protected]"
  • 設定git倉庫目錄的許可權
    1. # su - git                           //切換到git使用者
    2. $ chmod -R 755 /home/git             //修改目錄的許可權
  • 建立並初始化一個repository
    1. $ mkdir /home/git/repo   //假設要建立的repository放在/home/git/repo目錄下
    2. $ cd /home/git/repo
    3. $ mkdir test_repo
    4. $ cd test_repo
    5. $ git init --bare
  • 測試新建立的repository是否可用
    1. su - test (test為另外一個user或者exit,使用root使用者)
    2. $ cd /home/test
    3. $ mkdir repos
    4. $ cd repos
    5. $ git clone /home/git/repo/test_repo
    如果顯示" Initialized empty Git repository in /home/git/repo/test_repo/.git/",則說明成功的clone了一個local repository。之後就可以在此repository下進行開發了,比如,添加一個readme.txt檔案。
    1. $ cd test_repo
    2. $ vim readme.txt (建立一個檔案)
    3. $ git add . (注意後面有一個[.])
    4. $ git commit -a
    5. $ git push origin master
     注意:如果此時報錯,最大的原因是test_repo的refs和objects目錄的許可權不夠,執行如下操作即可(git server端的repository下的這兩個目錄)。
  1. $ chmod -R 777 refs/
  2. $ chmod -R 777 objects/
  2. gitosis的安裝 (1)python-setuptools的安裝(因為gitosis的安裝指令碼是用python寫的)
  1. #yum install python-setuptools
(2)gitosis的安裝
  1. #git clone git://github.com/res0nat0r/gitosis.git//下載gitosis到你想存放的目錄下
  2. #cd gitosis
  3. #python setup.py install    //如果沒有報錯,則說明安裝成功

(3)建立是用這個git server的使用者的公開金鑰

   因為gitosis的訪問是通過ssh訪問的,所以我們還需要建立一個ssh的訪問公開金鑰。找另外一台機器(如果條件允許)作為git server的用戶端機器建立公開金鑰,然後傳到git伺服器上。(如果為了簡便,也可在git伺服器上建立公開金鑰,使用git使用者或者其他使用者都行。為了方便,這裡採用git伺服器,並且使用git使用者。
  1. # su - git
  2. $ ssh-keygen -t rsa
 公開金鑰產生了,預設放在/home/git/.ssh/id_rsa.pub下,如果產生公開金鑰時設定了密碼,注意記住密碼,為了簡單,我這裡沒有設定密碼。 (4)配置gitosis    gitosis對git的各種管理通過gitosis-admin.git這個項目來完成,gitosis-admin.git項目本身又被置於git下管理,所以需要先在client端clone gitosis-admin.git, 根據需求修改後,將修改提交到git server即可生效。    此處的含義就是:你想在哪對gitosis進行配置,就需要在哪clone到gitosis-admin.git.
  • 假設在於gitosis不同的另外一台機器上,使用git使用者將gitosis-admin.git clone到本地。
    1. git clone [email protected]:/home/git/repositories/gitosis-admin.git
  • 修改gitosis設定檔gitosis.conf
    1. $ vim gitosis.conf
    2. //會看到如下內容
    3. [gitosis]
    4. [group gitosis-admin]
    5. writable = gitosis-admin
    6. members = [email protected]
    gitosis.conf 檔案是用來設定使用者、倉庫和許可權的控制檔案(對於gitosis.conf檔案的詳細含義,以及keydir目錄下公開金鑰的作用,將會另寫文檔說明,在此不再詳述),只需知道gitosis倉庫是可寫的,支援的使用者有git
(5)新添加repository     修改gitosis-admin的設定檔gitosis.conf,新添加一個repository,例如:
  1. [gitosis]
  2. [group gitosis-admin]
  3. writable = gitosis-admin
  4. members = [email protected]
  5. [group test_repo]                        //新添加的倉庫名稱
  6. writable = test_repo                     //此倉庫的讀寫權限,此處為可寫
  7. members  = [email protected] [email protected]       //可以訪問此倉庫的使用者名稱@主機名稱
假設當user1,來訪問這個test_repo倉庫時,需要輸入如下命令:

 

  1. git clone [email protected]_server_ip:/home/git/repo/test_repo.git

此時會要求輸入user1的密碼,此密碼就是建立user1的公開金鑰時輸入的密碼。那麼gitosis又是怎麼來確定user1的身份的呢? 這就要求必須事先將user1產生的公開金鑰傳給管理員,即對gitosis-admin有許可權操作的管理員,然後由他將公開金鑰拷貝到keydir目錄下,然後,執行git add,git push即可。

 

3. gitweb安裝

    注意:redhat的iso源是沒有gitweb安裝包,但是centos的源中有,在上一篇文章中給出了如何讓redhat使用centos的源,那麼,只需採用如下命令即可安裝。

 

  1. # yum install gitweb

4. gitweb配置

  gitweb預設安裝到了/var/www/git下,其設定檔在/etc/gitweb.conf下,另外,httpd的設定檔/etc/httpd/conf.d/git.conf。(1)修改/etc/gitweb.conf
  1. $projectroot = "/var/www/git" //將projectroot修改為/var/www/git
(2)修改/etc/httpd/conf.d/git.conf
  1. Alias /git /var/www/git
  2. <Directory /var/www/git>
  3. Allow from all
  4. AllowOverride all
  5. Order allow,deny
  6. Options +ExecCGI
  7. AddHandler cgi-script .cgi
  8. DirectoryIndex gitweb.cgi
  9. SetEnv GITWEB_CONFIG /etc/gitweb.conf
  10. Dav On
  11. RewriteEngine Off
  12. </Directory>
 (3)重啟httpd
  1. /etc/init.d/httpd restart
(4)將gitosis倉庫串連到/var/www/git下,完成web顯示
  1. ln -s /home/git/repositories/test_repo.git /var/www/git/
(5)通過瀏覽器瀏覽http://xxxx/git/ 注意:  如果git clone  http://xxx/git/test_repo.git時出現git update-server-info錯誤,則在test_repos.git目錄下執行 git update-server-info 命令即可(gitosis伺服器的相應倉庫下)。  5. 建立新的git repository在git server的/home/git/repository目錄下,執行如下命令:
  1. mkdir test.git
  2. cd test.git
  3. git init --bare
  4. //可以在這裡添加源檔案,也可以在client端clone之後添加

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.