簡易git server架設教學 (用Ubuntu linux)
現在技術相關的文章移轉到 toyroom 了: 簡易git server架設教學 (用Ubuntu linux)
雖然這邊還不會刪掉,但歡迎到我的新部落格逛逛 :D
雖然這邊還不會刪掉,但歡迎到我的新部落格逛逛 :D
1. 安裝git:
sudo apt-get install git-core
2. 在server端建立放置所有projects的目錄:
我的習慣是放在/var/git
cd /var
sudo mkdir git
3. 在server端建立project:
步驟3,5,6是每開一個新project就要做一遍的,假設現在我開了一個專案叫new_project
cd /var/git
sudo mkdir new_project.git
# 如果是第二次新增project,記得也要改該資料夾的群組跟權限,相關步驟在step 4有寫
cd new_project.git
sudo git --bare init
4. 建立git的群組:
因為我放在/var之下,這邊要root權限,當你用你的帳號pull東西上去時,會爆權限不足。但是把他改成權限全開的話(chmod 777 ...)又很危險。所以我開一個git的群組,讓會傳東西的人加到這個群組。
sudo groupadd git
sudo usermod -a -G git your_login # your_login改成你自己的帳號。
# 下面這兩行,在每次新增新project時要對新的資料夾補做
sudo chgrp -R git /var/git
sudo chmod g+rwx -R /var/git
在local端,假設我的project資料夾是/path/to/your/projects/new_project
5. 初始化git:
cd /path/to/your/projects/new_project
git init
6. 把我們遠端的repository加到git remote:
git remote add origin ssh://your_login@your.host/var/git/new_project.git/
這邊的路徑要注意,別打成ssh://your_login@your.host:/var/git/new_project.git 會爆以下錯誤:
ssh: Could not resolve hostname : Name or service not known
fatal: The remote end hung up unexpectedly
7. 把我們local的程式碼丟上去:(每次commit的例行步驟)
git add .
git commit -m '註解'
git push origin master
常用git指令小筆記:
git add 檔案名稱 #加到本次commit
git add -i #加檔案的互動介面
git status # 看準備要commit的檔案
git grep 關鍵字 # 在專案中搜尋關鍵字
git diff # 看本次變動
git log # 看log
git rm 檔案名稱 # 從準備要commit的檔案清單中去除,加-f參數強制刪除
git remote # 會列出來remote列表。總之就是git remote add new_remote ssh://... 。新增以後,打這個指令就會出現new_remote。名稱可以自己取,但如果需求單純的話,一般都習慣取作origin。
如果你懶得每次要一直打密碼,可以參考SSH免密碼登入
參考文章:
Debian Linux 架設使用 SSH 存取 的 Git Server
簡易git server 架設
1. sudo groupadd git
回覆刪除2. sudo chmod g+rwx -R /var/git
3. sudo usermod -G git your_login # your_login改成你自己的帳號。
在1和2之间,好像需要改变group
sudo chgrp -R git /var/git
似乎是的,剛才看了一下我之前架好的server,group的確是git
回覆刪除當時一邊架一邊做筆記的時候漏掉了:p
感謝您 :)
还有一个问题: 下面的 -a 参数很重要,不然就不能sudo了,呵呵。
回覆刪除sudo usermod -a -G git your_login # your_login改成你自己的帳號。
我的機器上還是可以sudo,不過還是加一下好了 :p
回覆刪除感謝提供~
要谢谢你。你的介绍是我找到的最简明和完整的。
回覆刪除請問要設訂ssh key嗎
回覆刪除你是說「如果你懶得每次要一直打密碼,可以參考SSH免密碼登入」這段嗎?
刪除如果不介意每次都要打密碼的話,可以不用設定這段(其實我剛開始摸索的時候也沒有設定)
想了解SSH產生key的方式,除了文中的那篇,也可以看github的教學
https://help.github.com/articles/generating-ssh-keys
您好,看了您的文章之後很快地架起一個簡易的 git Server,您的文章簡明易懂,非常感謝 ^^
回覆刪除謝謝支持 ^^
刪除