Synology NAS架設Git

需要先弄個 Synology 的 NAS,透過 NAS 本身的介面可以很順利地安裝 Git Server,只是,通常事情沒有憨人想的那麼簡單,裝好了 Git Server 之後,會發現它內建的說明文件簡單的可憐,當然有可能是撰寫文件的人認為這些都是非常基本的事情,不用多做描述,只是從來沒有碰過 Linux 的我,一開始在 SSH 遠端登入到自己的 NAS 主機上就卡關卡很久了,後續又發現無法正確 push,還好有找到文章參考,順利使用。這邊記錄一下。

這邊的測試專案叫做:BMISample,Git 目錄就照著命名為:git_repos,NAS 硬碟因為有兩棵,將位置放在第二顆所以是 volume2。

所以最終的 repo 位址應該是 ssh://[使用者]@[主機位址]:[Port]/volume2/git_repos/BMISample

建立 Git 的 Repos 目錄

透過 Putty 使用 admin 或 root 權限登入 NAS 主機後,建立一個目錄用來存放 repo

1
2
mkdir git_repos
cd git_repos

建立專案儲存庫

1
2
mkdir BMISample
cd BMISample

初始化一個 Git

1
git init --bare

加了 bare 的就是把檔案都放在當前目錄下,比較適合在沒有修改、開發的機器上,例如 Git Server,這樣做的好處是不需要將專案資料再複製一份最新的出來,會省一些些空間
此時 repo 已被建立,可透過下列指令將 repo 複製回來

1
git clone ssh://[使用者]@[主機位址]:[Port]/volume2/git_repos/BMISample

但是會發現 push 過去的時候會發生錯誤

透過指令變更權限,將整個 repo 權限指定給自己…這個是偷懶的作法,實際上應該要將每個目錄根據使用者逐一給權限,因為我自己用而已,就給他 chown -R 下去了

1
chown -R art:users git_repos

1
chmod -R 775 git_repos

搞定,透過 git push origin master 可成功提交 commit

這樣做比較麻煩的是,如果有新專案要做,就要重頭來一次

  1. 登入 SSH,建立專案目錄
  2. 執行 git init –bare
  3. 修改權限 chown -R [使用者名稱]:users [專案目錄名稱]
  4. 本機儲存庫執行 git clone ssh://[使用者名稱]@[主機位址]/volume2/git_repos/[專案名稱]
  5. 將檔案複製到本機 repo
  6. 再將本機 repo git push origin master 去

不過 VS2015 不支援 ssh 這樣開頭的位址,所以還是有點麻煩,如果要自己用自己的 NAS 來當作 Git 就變得很麻煩,還需要透過指令或 GUI 介面的 Git 去處理版控,不知道有沒有更方便的方法阿….

不然之後就是要考慮學用 Linux 配上阿帕契來架,這樣就可以有 http 了…

參考資料

  1. Synology DS213J 群晖 NAS git server 架设方法!
  2. http://blog.xuite.net/yctseng/notes/35377315-git-init