在群暉NAS上快速搭建屬于自己的Git Server

天翱的技術(shù)員作為一名碼農(nóng),平日里寫好的程序,改好的程序,都有保存項(xiàng)目歷史版本的習(xí)慣,同時(shí)還需要在其他機(jī)器取得新文件并編輯再提交。結(jié)合上述需求,我想起了Git。說起Git代碼托管服務(wù),目前國(guó)外有大名鼎鼎的GitHub,國(guó)內(nèi)也有碼云、coding等平臺(tái)。雖然這些平臺(tái)都有較好的體驗(yàn),但是作為一個(gè)折騰帝,不知道為什么,就是想要利用自己群暉NAS來折騰一下,搭建一個(gè)屬于自己的Git Server服務(wù)器,保存的項(xiàng)目也不需要上傳到其他網(wǎng)站服務(wù),從某種意義上來說也能保障私密,所以就有了以下的文章內(nèi)容。


群暉NAS套件中心是有Git Server套件的,只要在套件中心安裝即可。但是需要注意的是:


第一、git 相關(guān)的命令需要使用 SSH 客戶端連接到NAS上進(jìn)操作。


第二、配置git時(shí)需要使用 管理員權(quán)限賬戶,而 push / fetch 使用的賬戶一般都為普通用戶,一定要注意權(quán)限問題。


1 配置NAS


1.1 安裝Git Server套件


1.jpg


1.2 創(chuàng)建用來存放git倉(cāng)庫(kù)的共享目錄


2.jpg


1.3 創(chuàng)建一個(gè)用來使用Git的普通權(quán)限賬戶


3.jpg


1.4 設(shè)置 Git Server ,并賦予Git_test用戶訪問Git Server的權(quán)限。


4.jpg


1.5 ?打開NAS的家目錄,并允許使用SSH連接


注意:請(qǐng)依次打開NAS控制臺(tái)→控件面板→用戶賬號(hào)→高級(jí)設(shè)置→家目錄,啟用家目錄服務(wù)。


5.jpg


然后在依次打開NAS控制臺(tái)→控制面板→終端機(jī)和SNMP-終端機(jī),啟用SSH功能。


6.jpg


2 通過SSH創(chuàng)建Git倉(cāng)庫(kù)


以下操作過程主要只利用SSH工具來鏈接至群暉NAS操作,SSH工具以Xshell為例,同時(shí)需要注意的是SSH登錄賬戶必須具有管理員權(quán)限,以下操作截圖只保留關(guān)鍵步驟。


2.1 使用Xshell登陸NAS 進(jìn)入Git_test目錄


cd /volume1/Git_test/


7.jpg


2.2 創(chuàng)建倉(cāng)庫(kù)目錄,初始化git倉(cāng)庫(kù)


mkdir test.gitcd test.gitgit init --bare


8.jpg


2.3 設(shè)置Git目錄權(quán)限,并賦予Git_test用戶訪問權(quán)限

#請(qǐng)注意,以下命令建議手打,//后面的內(nèi)容為注釋內(nèi)容,無需輸入


sudo -i ?// 取得root權(quán)限

cd /volume1/Git_test/chown xxx:users . ?// 將Git_test目錄的所有者改為管理員賬戶xxx(xxx為具備管理員權(quán)限的賬戶),目錄的所屬群組改為users。注意不要忘了[.]

chmod 770 . ?// 將Git_test目錄的所有者、所屬群組的權(quán)限改為 讀/寫/運(yùn)行

chown -R Git_test:users test.git ?// 改變test.git目錄及所有包含文件、子目錄的所有者

chmod -R 770 test.git ?// 改變test.git目錄及所有包含文件、子目錄的權(quán)限


9.jpg


3 開始使用自己的Git Server服務(wù)器


注意:以下操作需要本機(jī)安裝有Git程序,沒有安裝的小伙伴可以訪問 https://git-for-windows.github.io/ 下載安裝。


3.1 取得倉(cāng)庫(kù)


安裝完Git程序后,我們只需要打開CMD命令符窗口并輸入以下命令,即可取得Git倉(cāng)庫(kù):


git clone ssh://Git_test@192.168.8.243/volume1/Git_test/test.git


10.jpg


▲圖為獲成功獲取到了test.git


3.2 add(添加)文件并push到倉(cāng)庫(kù)


git add .git commit -m "add test.txt file"git push


11.jpg


▲圖為成功成功創(chuàng)建文件并push到倉(cāng)庫(kù)


在使用過程中,我們不一定非要用CMD命令行窗口來操作Git,一般我們使用的IDE開發(fā)工具都集成有Git功能,可以很方便進(jìn)行Git操作。如果需要外網(wǎng)訪問Git Server,我們需要對(duì)NAS的SSH端口進(jìn)行端口映射。