步驟大概是必須先把 server 建置完畢, 然後 gitweb根據server上的眾多 xxx.git 作顯示, Client就可以下載source也可以view gitweb
Server端: 首先建立server端的repository目錄
通常Server端是 Git Repository的一個目錄 ex: project_name.git
而Client端是 .git的一個目錄
- mkdir -p /var/cache/git/project_name.git
- cd /var/cache/git/project_name.git
- git –bare init
//這時應該就可以在gitweb看到這個entry, 但還是空的!
補充說明: –bare
在不加–bare所init完的結果,會是在目前的working目錄下建立.git目錄,並把上述的git相關檔案放在.git目錄裡。
加了–bare的話,則是不建.git目錄,而把裡面的檔案直接放在目前目錄下。
適合在沒有修改檔案或開發的機器上,ex GIT server。
好處是只要maintain git repository,project的資料只存在repository中,不需要再複製一份最新的版本出來,會省點空間。 - git update-server-info
因為web服務器一般不允許執行列出目錄中文件的操作, 所以git update-server-info命令把可用的打包文件(packfile)和引用(refs)列表更新到“objects/info/packs”,”info/ refs”這個兩個文件中
- adduser git
- chown git project_name.git/ -R
- chgrp git project_name.git/ -R
- 完成檢視 http://xx.xx.xx.xx/cgi-bin/gitweb.cgi
將檔案owner由root改另一個使用者git的用意是
1: 方便samba開發時可以直接修改code, 因為我通常習慣samba用某個使用者(如git)登入而非root
2: client端作git clone使用某個使用者(如git)
Server端: 然後再 Git web實作
:
- 安裝Apach
sudo apt-get install apache2 - 安裝Gitweb
sudo apt-get install gitweb
gitweb.cgi 腳本安裝在/usr/lib/cgi-bin/ 中,該目錄為默認ubuntu 上apache2 的cgi-bin 目錄。所以,打開:
http://127.0.0.1/cgi-bin/gitweb.cgi 即可顯示成功運行,只是我們還未將git項目加入其中。 - 修改配置文件:
sudo vi /etc/gitweb.conf
將其中的$projectroot 改為存放各個.git 的目錄
我是沒有改啦! 用預設值/var/cache/git就好, 不要多增加麻煩
ps: git web 進階版
ref: http://blog.xuite.net/yctseng/notes/35220134-gitweb
也可以小修改,讓網址簡化為 http://127.0.0.1/gitweb
由於按照上述作法上述,
有一次無法找到static/gitweb.csss等檔案,
所以用這方法解決
cd /var/www
ln -s /usr/share/gitweb/ gitweb
ps:位置資訊
/var/www
為apach2的根目錄
/usr/share/gitweb/
為 gitweb網頁前端資料
/usr/lib/cgi-bin/
為gitweb預設到這找cgi
Client端: 由 Git Repository 取得資料 (Client)
- git clone ssh://git@xx.xx.xx.x/var/cache/git/project_name.git
此指令會自動產生project_name的目錄, 且目錄裡面會有.git的子目錄
如果server/cline在同一台,<協定+主機位置>可以填”file://”,以ssh連線就填”ssh://@”。
是.git 的所在位置,這邊當然是”/git” - 在此目錄加入檔案
- 初始的檔案資料 git add .
- 將目錄底下所有檔案準備上傳
git commit
git push (第一次push請用: git push origin master)git push 上傳
git push origin master: 將local修改提交到remote的master分支
參考:
http://shadowofisaac.blogspot.com/2011/05/git-server-ssh.html
http://tkg.im.ncue.edu.tw/?p=755
自動引用通知: 小筆記: SVN 轉 GIT | 易春木