搭建自己的github

jopen 9年前發布 | 17K 次閱讀 Git 版本控制系統 Github
 

說起github,大家應該都是非常熟悉的。正是github的興起,帶來了開源的一個高潮,也誕生了無數優秀的開源項目。最最著名的Linux也在github上有了自己的repository。當然,github的核心技術git也是李納斯的代表作。

記得幾年前由于項目的需要,我嘗試自己去搭建一套git服務給項目組使用,折騰了好久,才總算搭建了一個基礎的系統, 剛剛能用,權限控制都沒有。其中的過程記錄在了這里: http://srhang.iteye.com/blog/1339110 。但最終因為git的上手門檻有點高,還是選擇了svn。后來,github興起,git才如火如荼地在國內火了起來。許多大的互聯網公司,也都開始把項目由svn轉到Git上。但如果僅僅是搭建一個git服務,那么github這種網站提供的可視化ui帶來的便捷卻也不復存在了。對于一些小的有錢的團隊,使用github的收費私人repository倒也能享受github帶來的便捷。但是,對于大部分小公司以及大公司來說,是玩玩不會把自己的代碼放到這種公共服務上的。于是就產生了很多github的克隆實現,以方便部署內網的github。

說到github的克隆實現,最出名的莫過于 gitlab 。這是一個ROR的實現。應該是目前市面上最成熟的一個github克隆項目。功能也是最豐富的,在原來最基礎的git庫管理、權限管理、用戶管理的基礎上又加入了諸如code review、ci等極大方便開發者的功能。但是gitlab本身的部署是很復雜的,如果自己來一步一步的安裝,需要安裝很多依賴包,整個過程非常痛苦。而如果使用它提供的一鍵安裝包的話,對于操作系統又有要求,比如就要求CentOS 6以上。一想到這么多事情,對于我這種懶人來說,還是算了。。。

在前東家的時候,git項目是從gitlab遷移到了gitbucket(其中的原因當然不僅僅是因為gitlab部署的繁瑣)。說起 gitbucket ,在百度上也搜不出什么信息來。僅僅能搜到的估計也就github庫。這個項目是日本的同行使用scala開發的一個項目。所以,拋開編程方面,對于 java系的程序員還是比較友好的,部署也只需要把war包往tomcat之類的容器里一扔就好。這個對比gitlab那可是天壤之別。而談到二次開發,scala語言的學習曲線還是非常陡的,所以對比起來,貌似gitlab的二次開發相比較起來還是容易一些的(gitlab的二次開發沒參與過,這里只是猜測)。當然,gitbucket是一個相對年輕的項目,對比gitlab,功能還顯得比較單薄,bug也不少。我自己在使用的過程中,fix過幾個小bug并提交到了項目的主分支,但是還有不少bug被公司的同事吐槽中。。。(實在沒時間專門fix這個)。另外,不得不說的是,gitbucket的 markdown解析引擎,作者不知道什么原因從之前的一個叫pegdown的替換成了自己實現的markedj,讓我們公司的一堆md文檔都顯示的各種亂,實在無語。。。不得不去clone了markedj的代碼,fix了其中的一些bug,部署在我們內網的maven庫里了。雖然bug挺多,但是相比起來,還是喜歡gitbucket的部署升級的簡單^_^。去官網下個war包,扔到tomcat里,恭喜你,你擁有了自己的github。

其實,除了gitlab和gitbucket還有很多github的克隆實現。這篇文章列出了很多并做了簡單介紹: http://www.oschina.net/news/50222/git-code-platforms

總之,開發工具這種東西,還是要選擇最適合自己以及自己團隊。

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!