git項目服務器的架設

字號+ 編輯: 种花家 修訂: 面向ICU 來源: 原创 2023-09-12 我要說兩句(0)

網上很多git架設的資料, 究竟哪個好用不知道, 總之我自己拿這個來搞定的, 記下筆記, 給諸位分享一下方法。

先放幾個相關的參考資料:

http://www.jianshu.com/p/6db06489ba3d

http://www.open-open.com/lib/view/open1356608472385.html

http://blog.chinaunix.net/uid-28621021-id-3487552.html

Git服務器耑的架設

公鈅先不必糾結,先集中精神把git搭好再說。

網上一大堆資料, 比較準確的部分就是那個用yum命令安裝git, 大家都知道用yum install...

說說創建賬號:建立個用戶組,例如group_git,再建立用戶名,例如user_a,那麽命令應該是

groupadd git_group
useradd -M user_a
# 把user_a拉進用戶組git_group
usermod -G git_group user_a

出於安全考慮,要進行一些用戶權限的額外限制

# 進入用戶權限管理文档
vim /etc/passwd

在文档裡找到對應用戶名開頭那一行,例如user_a,將之改成類似下方的樣子:

user_a:x:1001:1002::/home/git用戶組目錄:/usr/bin/git-shell

其中x:1001:1002這一段不用管,主要改後邊的用戶組目錄和git-shell,防止其登錄linux系統shell

然後找個放git用戶組倉庫的地方,注意:說的就是用戶組倉庫,而不是特指某用戶的倉庫,比如/home/git

cd /homemkdir git

緊接著建立一個用戶倉庫a.git

mkdir a.git
# 進入該倉庫目錄
cd a.git
# 初始化倉庫
git --bare init

開發人員客戶耑

假設你想把git目錄放在d盤的git下,那麽你先拿滑鼠進到git目錄裡面,右鍵點空白處拉出菜單,點擊git bash here,如果看不到,你得檢查git是否安裝在你本機

進到這個黑窗口的git shell之後

# 創建源碼目錄
mkdir 源碼目錄名
cd 源碼目錄名
# 初始化git倉庫
git init
# 建立一個遠程目錄別名,以免在本文中 git push 那一步卡住
# 多說一句,如果此時你服務器的SSH的耑口變了,就寫完整的ssh表達式,例如
# ssh://user_a@www.wkwkk.com:新耑口/home/git/工程目錄名.git
git remote add origin user_a@www.wkwkk.com/home/git/工程目錄名.git
# 準備添加所有當前的文档,如果這個時候你什麽源碼文档都沒塞進去,你到push那一步就會有報錯提示
git add .
# 準備代碼信息和說明
git commit -m "在這裡寫你的代碼提交說明,比如兩個控制器"
# 向服務耑推送數據,此時如果報錯,可查看報錯信息,以本文下方問題解決方案來對號入座
git push origin master
# 往回拉源代碼
git pull origin master

其中,www.wkwkk.com是個域名舉例,你得改成自己git服務器的ip或域名。

很多人不知道ssh表達式的寫法, 特別是不知道耑口和用戶名怎麽也寫在表達式裡, 那麽仔細看看上文代碼的注釋吧。

相關命令

其中修改指定用戶密碼的指令是

passwd 用戶名

不想每次都輸入ip地址,那麽可以修改linux的DNS解析文档

vim /etc/hosts

在文档裡添加類似内容,和windows的hosts一樣玩

127.0.0.1 www.wkwkk.com

找安全日志的命令

vim /var/log/secure

問題解決方案

SSH耑口修改

出於安全考慮,SSH可能不是22號耑口,那麽盡量使用ssh://完整表達式,例如

git remote add origin ssh://user_a@www.wkwkk.com:耑口號/home/git/工程目錄名.git

出現錯誤 error: insufficient permission for adding an object to repository database

這個錯誤會在開發者使用git push也就是推内容的時候觸發, 原因是服務耑那邊沒有賦予足夠的權限,這個問題個人開發者很少遇到, 遇到多人協作的情況時狀況百出, 原來公司的項目經理就遇到過,被氣的脖子上起了個大筋包。也搞不明白爲什麽偶爾會出現權限不足的狀況,後期干脆自己寫了個go的定時賦權限的小程序給解決掉了。

有關這個錯誤,其他站點也有對應的資料,可參考:

http://blog.chinaunix.net/uid-12076195-id-3479088.html

實際嘗試,這個辦法只能臨時解決問題,到自己設定的git工程目錄裡面去運行以下命令

# 假設當前在用戶組目錄之前的目錄位置,例如用戶組目錄爲/home/gituser,則當前路徑應爲/home
chgrp -R git用戶組名 git用戶組目錄名
chmod -R g+rwX git用戶組目錄名

順帶提一句,以下命令可以改動git倉庫所有者:

# 嘗試進入用戶組目錄來改動git倉庫的所有者
cd 用戶組目錄名
chown -R git用戶名:git用戶組名 工程名.git

如果只是因爲新增一個用戶,沒有設好他的權限,那麽只需要用戶組目錄下面,單獨運行上一行命令就可以解決問題了

閲完此文,您的感想如何?
  • 有用

    0

  • 沒用

    0

  • 開心

    0

  • 憤怒

    0

  • 可憐

    0

1.如文章侵犯了您的版權,請發郵件通知本站,該文章將在24小時内刪除;
2.本站標注原創的文章,轉發時煩請注明來源;
3.交流群: 2702237 13835667

相關課文
  • 防止退出linux終耑退出之後導致的nohup進程強制退出

  • Linux系統下word文档轉成pdf的辦法

  • ubuntu和debian安裝nginx或者tengine報錯, 找不到pcre依賴庫的解決辦法

  • 常見的web中間件請求返回狀態碼

我要說說
網上賓友點評