Windows下Git伺服器搭建及使用過程中的一些問題

來源:互聯網
上載者:User

      最近發現團隊的代碼版本管理比較混亂,甚至是根本就沒有版本管理的意識,一個項目的源碼有時候找個2、3次才找到正確的版本。以前我對這塊沒做什麼特別的要求,只要是大家自己用的順手,VSS、SVN、TFS都無所謂。考慮到離線工作和以後的非微軟開發環境,於是打算用Git來規範統一團隊內的版本管理。說到Git,其實GitHub是不錯的選擇,只不過我們的源碼和開發文檔與電訊廠商的不少系統都有或多或少的關聯,將其放置於互連網上的風險度還是比較高的;基於此,我還是選擇搭建自己的Git伺服器,將代碼、文檔、版本資訊等存放在自己的內網伺服器上,那是最好不過的了。
   
  我們的內網Web伺服器基本都是Windows Server系統,查了一些資料,真心覺得在Win系統下搭Git伺服器的配置步驟很坑爹。。。直到看到Dudu的 用開源ASP.NET MVC 程式 Bonobo Git Server 搭建 Git 伺服器 ,豁然開朗。恩,這下有戲了,就用它了。這個開源的解決方案現在是V1.1版,已經加入了中文資源檔。

  我用的是一台Windows Server 2003,IIS 6 + WebDAV + ASP.Net MVC 3。基本上只要按照部署ASP.NET MVC網站的步驟模式一路走下來,就不會有什麼大問題。具體的安裝步驟和Git用戶端的使用介紹就不多說了,Dudu已經寫的很詳細了,網上也有大把的TortoiseGit使用教程。我這裡只記錄下我在配置和使用過程中遇到的一些問題。網站部署完了之後,注意需要給App_Data檔案夾賦予寫入權限,因為SQLite資料庫檔案、網站的全域配置資訊以及錯誤記錄檔都在這個檔案夾下。Bonobo.Git.Server網站能正常運行之後,我們就可以通過Git用戶端像使用GitHub一樣clone、commit、pull、merge、push等操作自己的版本庫了。

  在這個過程中,遇到的最大問題是本地版本庫無法提交到Git伺服器。代碼提交到本地沒什麼問題,但是當Push到服務端的時候,總是提示:fatal: authentication failed:

  心想肯定是哪裡配置或者設定不對,因為當把版本庫勾選中"匿名"的時候,是可以不用輸入使用者名稱和密碼而能夠正確提交到服務端的,但這樣一來就無法有效通過許可權和使用者名稱來管理和查看版本資訊了。最後終於找到解決方案:在IIS中,把目錄安然性 -> 編輯-> 驗證方法 -> 整合Windows身分識別驗證  去掉,整個上傳過程就暢通無阻了;如果不做這樣設定的話,我們則需要把每個在Git服務端網站中添加的使用者也設定成Window系統的使用者(http://forum.chodounsky.net/viewtopic.php?f=11&t=92)。

  在登入後的服務端網站中,瀏覽上傳的檔案時,會報404錯誤;在本地開發環境中,瀏覽及下載檔案都很正常。這種情況,我們只要知道它定義的尾碼名就很好解決了。Bonobo.Git.Server中瀏覽檔案、下載檔案分別定義的是.browse、.download尾碼名,於是在 IIS的 主目錄 -> 配置 -> 添加 對應的副檔名就可以了:

  在使用過程中,我還發現如果版本庫的名稱中包含中文或者小數點時,會有問題(暫未測試其它特殊字元)。如果包含中文,提交到服務端時會失敗;如果包含小數點,連開啟這個庫的資訊頁面都會404。。。這些小問題也很好處理,我們可以把包含中文的Git庫位置自動轉換成HTML編碼,可以在新增和修改版本庫時自動替換小數點或者其它特殊字元等等

  好了,我們終於可以像使用GitHub一樣,使用我們自己的Git伺服器Bonobo.Git.Server了!

  團隊內測試試運行了2周,運行情況還比較穩定。

  大家在使用過程中有什麼好的方法和問題也可以一起分享討論下。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.