CentOS下搭建Git伺服器Gitosis1

來源:互聯網
上載者:User

.編譯安裝git

yum install git

2.安裝gitosis

  1. $ yum install python python-setuptools
  2. $ git clone git://github.com/res0nat0r/gitosis.git
  3. $ cd gitosis
  4. $ python setup.py install

網址:https://github.com/res0nat0r/gitosis

3.在開發機器上產生公用密鑰(用來初始化gitosis)

  1. $ ssh-keygen -t rsa #不要求輸入密碼,一路斷行符號就行(在本地操作)
  2. $ scp ~/.ssh/id_rsa.pub root@xxx:/tmp/ # 上傳你的ssh public key到伺服器

4.初始化gitosis[伺服器端]

  1. $ adduser git # 新增一個git使用者(先添加使用者組 groupadd git)
  2. $ su git # 切換倒git使用者下
  3. $ gitosis-init < /tmp/id_rsa.pub # id_rsa.pub是剛剛傳過來的,注意放在/tmp目錄主要是因為此目錄許可權所有人都有定許可權的
  4. $ rm /tmp/id_rsa.pub # id_rsa.pub已經無用,可刪除.

5.擷取並配置gitosis-admin [用戶端]

  1. $  git clone git@xxx:gitosis-admin.git  # 切換到root使用者並在本地執行,擷取gitosis管理項目,將會產生一個gitosis-admin的目錄,裡面有設定檔gitosis.conf和一個 keydir 的目錄,keydir目錄主要存放git使用者名稱
  2. $  vi gitosis-admin/gitosis.conf  # 編輯gitosis-admin設定檔

如果無法git clone的話,可以使用git clone git@xxx:/home/git/repositories/gitosis-admin.git

# 在gitosis.conf底部增加

  1. [group 組名]
  2. writable = 項目名
  3. members = 使用者  # 這裡的使用者名稱字 要和 keydir下的檔案名稱字相一致

# VI下按ZZ(大寫)兩次會執行自動儲存並退出,完成後執行

  1. $ cd gitosis-admin
  2. $ git add .
  3. $ git commit -a -m “xxx xx” # 要記住的是,如果每次添加新檔案必須執行git add .,或者git add filename,如果沒有新加檔案,只是進行修改的話就可以執行此句。

# 修改了檔案以後一定要PUSH到伺服器,否則不會生效。

  1. $ git push

如果在git push的時候,遇到錯誤“ddress 192.168.0.77 maps to bogon, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!”,解決為修改/etc/hosts檔案,將ip地址與主機名稱對應關係寫進去就可以了。

注意:這裡我們並沒有進行任何的修改的,現在只有一個管理git的項目。下面的為新添加項目的配置,大家經常用到的也就是下面的操作的。

建立項目

到此步就算完成gitosis的初始化了。接下來的是建立一個新項目到伺服器的操作,如第5步中配置gitosis.conf檔案添加的是

  1. [group project1] # 組名稱
  2. writable = project1 # 項目名稱
  3. members = xxx # 使用者名稱xxx一定要與用戶端使用的使用者名稱完全一樣,否則無許可權操作

提交修改並更新到git server服務端

  1. $ git commit -a -m “添加新項目project1,新項目的目錄是project1,該項目的成員是xxx“ # “”裡的內容自定
  2. $ git push

將新建立的項目提交到git server 上進行登記。以便客戶可以操作新項目.

# 在用戶端建立項目目錄(用戶端,目前使用者為 XXX )

現在回到開發人員用戶端,上面建立了一個新項目project1並提交到了git server 。我們這裡就建立此項目的資訊.注意 項目名稱 project1要與gitosis.conf檔案配置一致,

  1. $ mkdir /home/使用者/project1
  2. $ cd /home/使用者/project1
  3. $ git init
  4. $ git add . # 新增檔案 留意後面有一個點
  5. $ git commit -a -m “初始化項目project1″

# 然後就到把這個項目放到git server伺服器上去.

  1. $ git remote add origin git@xxx:project1.git # xxx為伺服器位址
  2. $ git push origin master

# 也可以把上面的兩步合成一步

  1. $ git push git@xxx:project1.git master

說明:如果在執行 git push origin master 的時候,提示以下錯誤:
error: src refspec master does not match any.
error: failed to push some refs to 'git@192.168.0.77:pro2.git'

這是由於項目為空白的原因,我們在項目目錄裡新建立一個檔案。經過->add -> commit -> push 就可以解決了

  1. $ touch a.txt
  2. $ git add a.txt
  3. $ git commit -a -m 'add a.txt'
  4. $ git push

------------------------------------------------------------------------------------------------

如果在git clone的時候遇到“

error: cannot run ssh: No such file or directory - cygwin git

”錯誤,則表示本機沒有安裝ssh命令。安裝方法請參考:http://blog.haohtml.com/archives/13313

有時候我們要更換電腦來重新開發項目。這個時候,只需要將id_rsa私密金鑰放在home目錄裡的.ssh目錄裡就可以了。(有時候一個人開發多重專案,這時候可能會提示id_rsa檔案已經存在。不太清楚這裡如何解決???)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.