小組級Windows下架設git伺服器

2022-03-10 03:36:52 字數 1883 閱讀 4958

2010-12-06 18:04:32

|  分類:

預設分類|字型大小

訂閱tortoisegit + msysgit + copssh + windowsxp as server 

1.需要軟體

git是為linux kernel開發而設計的版本控制系統,因此其與linux的結合非常緊密。這使得它在linux下使用起來非常方便。但是對於習慣windows的人就不那麼友好了。雖然目前也有msys-git和tortorsegit這樣的專案,使得在windows上使用git變得越來越方便。但目前乙個明顯的缺陷就是要把自己的版本庫共享給其他人時,很不方便。

在linux下,由於有完美的ssh支援,因此clone遠端機器的版本庫只要:

git clone [email protected]:path/to/repo local_dir

就可以輕鬆搞定。那麼可以在windows上配置好ssh,然後用和linux下一樣的方式來使用git嗎?

可以的: 首先,需要安裝兩個工具:

1 - git,windows下的git,還是msys-git比較好。

2 - ssh,可以用copssh,可以在windows上啟動ssh服務,而不僅是客戶端。

安裝這兩個工具的過程沒有什麼難度。這裡假定git是安裝在c:\git目錄下,copssh安裝在c:\icw目錄下。那麼當你安裝好以後,git已經可以從遠端得到版本庫,ssh也有乙個使用者可以登入了。假定這個使用者是git(copssh預設沒有任何使用者可以登入,需要手動啟用乙個設好密碼的windows使用者)。

這時,從其它機器用git使用者通過ssh登入以後,可以執行ls,cd等基本命令。但是git任然不能執行。所以,也就還不能通過這個ssh來發布git版本庫了。要實現這個,需要做一些設定。

首先、需要在git的安裝目錄裡找到cmd目錄,這裡就是c:\git\cmd了。在裡面建立如下幾個檔案:  git, git-upload-pack, git-upload-archive, git-receive-pack。這裡都沒有副檔名的,主要是給登入後,由bash執行的。每個檔案都只有一行,分別是:

git裡寫  git.cmd $*

git-upload-pack裡寫  git upload-pack $*

git-upload-archive裡寫  git upload-archive $*

git-receive-pack裡寫  git receive-pack $*

然後,就要給登入後的使用者新增path了,保證上面新增的命令可以找到,並執行。找到copssh安裝目錄的etc下的profile檔案。這裡就是c:\icw\etc\profile了:在檔案最後新增兩行

gitpath=`/bin/cygpath c:/git/cmd`  #這裡不是引號,路徑是git下的cmd,斜槓也要用unix的習慣

export path="$path:$gitpath"

然後,用git使用者重新從ssh登入。就可以使用git命令了。

例如建立乙個測試庫:

mkdir testgit

cd testgit

git init

touch a b c

git add .

git commit -m "init"

然後,就可以在遠端clone這個庫了。假定這台機器的ip是192.168.1.1。在另外一台機器上,

git clone [email protected]:testgit testgit

就可以clone成功了。這樣windows下的git+ssh服務就做成功了!

最後,說明一下目前知道的限制:

1)不能用link,也就是所有的檔案必須放在git使用者的home下。這個home的位置在 c:\icw\home\git。

2)clone時不能用絕對路徑,只能寫相對於git使用者home的相對路徑。

windows下架設SVN伺服器並設定開機啟動

c documents and settings administrator svn 使用 svn help 得到用法。2 建立倉庫repository 執行命令 c documents and settings administrator svnadmin create g svn 該命令會在g盤...

windows下架設SVN伺服器並設定開機啟動

c documents and settings administrator svn 使用 svn help 得到用法。2 建立倉庫repository 執行命令 c documents and settings administrator svnadmin create g svn 該命令會在g盤...

Windows下用MFC實現微秒級延時

一幫情況可以使用sleep 函式來實現延時,但windows不是實時的,是作業系統來分配處理器給多個執行緒的,而不會執行緒一直擁有處理器的使用權。比如延時50ms,不論採用什麼方式來延時,50ms以後,作業系統未必就正好把處理器分配給這個執行緒使用。使用乙個sleep 50 這下這個執行緒就暫停了,...