[其餘](#其餘)
本文主要針對兩種應用場景,第一種場景:Github
爲每一個免費用戶提供 0.5 Gb
的空間,不過只能存放公開的代碼,若是你想在 Github
上保存私有代碼,只有成爲付費用戶才行。另外一種場景是你的私有代碼並不想公開放到互聯網上,由於你以爲不安全,你只想把它們保存在本地局域網內部,可是你又很想用 git
來進行版本控制。怎麼辦?很簡單,本身搭建一個 git
服務器。git
下面說說作一個服務器有哪些條件應該知足:github
服務器廣泛有不間斷供電的需求:若是要作代碼服務器,那麼持續供電是必要條件,選擇專用服務器,必須配套 UPS
,或者用一臺自帶電池的筆記本,也是一個不錯的選擇。shell
服務器的磁盤空間需求,若是你的代碼服務器只容許上傳文本文件,不容許保存可執行文件,那麼只須要極少的空間。安全
若是在硬件昂貴稀少的幾十年前,人們不太可能用筆記原本作這種事情,可是如今不少人都有不止一臺臺式機,不止一臺筆記本,尤爲是幾年前購買的一些上網本,性能有限,速度遲緩,基本處於閒置狀態,筆者就有3臺相似的上網本,用來作代碼服務器剛恰好。服務器
龍芯小本 8089D
偏偏能夠做爲一臺代碼服務器來真正發揮威力,一方面它自帶電池,沒必要擔憂突然停電致使的系統錯誤(Linux系統運行時一旦停電可能會對系統形成損壞,有時可用命令 fsck 修復,有時甚至須要重裝系統),事實上任意一款電池沒有徹底廢掉的上網本均可以改造爲一個代碼倉庫服務器。另外一方面就是它的性能偏低,用它作編譯、作圖形處理都比較慢,可是作代碼服務器就足夠了。ssh
理論上來講,Windows
和 Linux
均可以設置爲代碼服務器, Windows
只須要安裝額外的 ssh
服務器軟件來啓動 ssh
服務,同時安裝專門爲 Windows
準備的 git shell
也能夠把代碼服務器配置起來,不過鑑於我在配置 freeSSHd
、posSSH
、WinSSHD
上折騰了半天-雖然配置好了-也能夠從 Linux
登錄到 Windows
上的 ssh
-就是有一些亂碼什麼的,就不建議拿 Windows
當代碼服務器了。性能
下面介紹如何在 Debian
上進行配置。fetch
個人 8089D
安裝了 Debian 7
,一些基本軟件都安裝好了,還須要安裝以下軟件和服務:git
url
能夠經過以下命令來安裝:.net
aptitude install git
系統啓動時自帶啓動 sshd
服務,能夠經過 sysv-rc-conf
來查看
新增一個 ssh 用戶
sudo adduser git
按照提示設置好該用戶的密碼
建立 git
倉庫目錄
sudo mkdir /opt/github/mytest.git
把該目錄的屬主設置爲該用戶
sudo chown -R git:git /opt/github/mytest.git
切換到該用戶
su git
把該目錄初始化爲裸倉庫
cd /opt/github/mytest.git git init --bare
OK,如今服務端的配置所有完成
接下來就是客戶端的配置操做,Windows
和 Linux
Unix
OSX
均可以做爲客戶端,只要可以運行 ssh
和 git
,就能夠當客戶端來用.
這裏須要知道 8089D 的 ip
,用命令 ifconfig
能夠看到,假設咱們 8089D
的 ip
爲192.168.99.233
有兩種方法,一種使用默認的遠程倉庫名 origin
,另外一種本身指定名字。
先說方法一,比較簡單,直接使用 git clone
命令就能夠在本地創建一個遠程倉庫的拷貝,默認的遠程倉庫名字設置爲 origin
,本地目錄設爲 mytest1
,詳細命令以下:
git clone ssh://git@192.168.99.233/opt/github/mytest.git mytest1
按照提示要求輸入ssh
用戶 git
的密碼,而後就把位於龍芯小本上的 mytest.git
克隆到本地的 mytest1
目錄下,這時進入目錄 .\mytest1\
使用 git remote -v
命令查看當前的遠程倉庫,以下:
Air:loongson admin$ cd mytest1/ Air:mytest1 admin$ ls -al total 0 drwxr-xr-x 3 admin staff 102 6 8 00:36 . drwxr-xr-x 3 admin staff 102 6 8 00:36 .. drwxr-xr-x 10 admin staff 340 6 8 00:37 .git Air:mytest1 admin$ git remote -v origin ssh://git@192.168.99.233/opt/github/mytest.git (fetch) origin ssh://git@192.168.99.233/opt/github/mytest.git (push) Air:mytest1 admin$
再說方法2,首先創建一個空目錄 mytest2
,而後進入這個目錄使用 git init
命令把這個目錄初始化,最後使用 git remote add
命令爲其手動增長遠程倉庫,詳細命令以下:
Air:loongson admin$ mkdir mytest2 Air:loongson admin$ cd mytest2 Air:mytest2 admin$ ls -al total 0 drwxr-xr-x 3 admin staff 102 6 8 00:41 . drwxr-xr-x 4 admin staff 136 6 8 00:41 .. drwxr-xr-x 10 admin staff 340 6 8 00:42 .git Air:mytest2 admin$ git init Initialized empty Git repository in /Users/admin/GitHub/loongson/mytest2/.git/
再經過命令 git remote add
增長名爲 l8089D
的遠程倉庫
Air:mytest2 admin$ git remote add l8089D ssh://git@192.168.99.233/opt/github/mytest.git
接着用命令 git remote -v
查看一下,會顯示全部的遠程倉庫名和對應的url
Air:mytest2 admin$ git remote -v l8089D ssh://git@192.168.99.233/opt/github/mytest.git (fetch) l8089D ssh://git@192.168.99.233/opt/github/mytest.git (push) Air:mytest2 admin$
如今就基本完工了。
爲了保證不上傳可執行文件浪費空間,咱們須要在工做目錄下新增一個 .gitignore
配置文件,命令以下:
touch ./.gitignore vi ./.gitignore
並對其進行配置,有兩種配置方式,一種是開放模式,一種是保守模式。
簡單說,開放模式就是默認提交全部文件,要在配置文件裏指出不提交哪些文件,假設咱們的可執行文件格式爲 *.o
,咱們不但願提交全部的可執行文件,那麼配置文件內容以下:
*.o
保守模式偏偏相反,它默認不提交全部文件,只提交在配置文件裏列出的那些文件,假設咱們須要提交全部的 *.c
和 *.h
文件,那麼配置文件內容以下:
!*.c !*.h
以上是針對文件的過濾設置,也能夠針對目錄進行設置,以下。
開放模式,不提交目錄 /opt/github/mytest1/others/
,配置文件 .gitignore
內容以下:
/opt/github/mytest1/others/
保守模式,只提交目錄 /opt/github/
,配置文件 .gitignore
內容以下:
!/opt/github/
目前的配置方式每次 push
代碼時都須要輸入用戶 git
的密碼,是由於咱們沒有配置 ssh 的公鑰和私鑰,配置一下很簡單,這樣每次就沒必要輸密碼了,只要把客戶端使用 ssh
的用戶的公鑰收集起來,它們存放在 id_rsa.pub
文件中,添加到 8089D
的用戶 git
的鑑權名單裏便可,也就是 8089D
上的 /home/git/.ssh/authorized_keys
文件裏,每行一個,若是隻有一個用戶,那麼直接把 id_rsa.pub
拷貝爲 authorized_keys
就行了。
剩下的就是從客戶端工做目錄把代碼同步到服務端
git add . git commit -m ""
若是在 mytest1
操做,命令以下:
git push origin master
若是在 mytest2
操做,命令以下:
git push l8089D master
其餘的操做都同樣。
通過上述配置,如今你的 8089D
龍芯小本就能夠作爲一個代碼服務器投入使用了,
做者:FreeBlues 版本:20150608 連接:http://my.oschina.net/freeblues/blog/464075