2011-12-06 25 views
1

我最近一直在尋找使用Git來最終替換我們在工作時使用的CVS存儲庫。然而,在觀察關於Git的Linus Torvalds' video on YouTube之後,似乎我發現每個教程都建議使用Git,就像使用CVS一樣,除非您有一個本地存儲庫,我認爲這對於速度和分發非常有用。你如何在Eclipse中使用Git?

但是,教程建議您所做的每個克隆都是您想要從遠程位置開發的存儲庫,並且在進行更改時,您會在本地提交建立歷史記錄以幫助進行合併控制。當你準備好提交你的修改時,你可以將它們推送到遠程位置,但是首先你需要獲取修改來檢查合併衝突(就像CVS一樣)。

然而,在Linus的視頻中,他描述了Git作爲一組開發人員的功能,這些開發人員根據需要致力於相互代碼推送和獲取,而不是使用遠程位置,即集中位置。他還描述了人們將他們的變化推送給驗證者,他們也提取和推送代碼。所以你可以看到在公司內部也可以創建可擴展的結構。

我的問題是,任何人都可以指示我一些教程的方向,實際上解釋瞭如何使用Git進行代碼的分佈式開發,以便開發人員可以互相推送和提取代碼,並且如果可能的話提交到遠程存儲庫讓本教程基於Eclipsed將會非常好。

在此先感謝, 阿列克謝藍。

回答

2

看看alblue的博客文章上Gerrit

這說明從經典的集中式服務器,如CVS或SVN不同的工作流。從表面上看,它與從中央Git服務器獲取源代碼看起來很相似,但是您可以將提交內容提交給Gerrit服務器,以便在最終將更改推送到中央Git服務器之前編譯和測試代碼以確保其可行。

現在,您不必將更改推送給Gerrit,而是將代碼推送給您的搭檔編程夥伴,並且他可以手動審查和測試代碼。

或者你可能正在度假,同事會完成你已經開始的任務。沒問題,只需將你的更改推送到他們的Git倉庫。

Git不會將任何其他Git實例視爲彼此不同。從Git的角度來看,它們都不是特別的。

+0

如果可以的話,我會剔除兩個答案,因爲他們給了我很好的信息,歡呼傢伙。我們目前使用哈德森來構建CVS版本庫,所以使用Gerrit將會是一個平穩的過渡,歡呼Steve :) –

3

我不知道任何關於此的具體教程。一般來說,爲了連接到一個版本庫,你必須運行一個git服務器來偵聽(並驗證)git請求。

要爲每個開發人員提供特定的存儲庫是可能的 - 但每個存儲庫都需要該服務器組件。可以將多個存儲庫存儲在同一臺計算機上,以減少所需的服務器數量。

但是,由於其他原因,具有某種中心結構(例如,要發佈的東西存儲庫或尚未驗證的東西存儲庫)是有益的。這種結構不需要是一個單一的中央存儲庫,而是具有定義良好的關於存儲庫之間數據移動的工作流的多個存儲庫(例如,如果來自驗證存儲庫的代碼經過驗證,則應將其推送到發佈存儲庫)。換句話說,您應該準備好創建Git服務器(例如,參見http://tumblr.intranation.com/post/766290565/how-set-up-your-own-private-git-server-linux瞭解詳情;但也有其他教程),併爲您自己的公司定義使用它的工作流程。

此外,我建議您查看名爲Git Tip of the Week的AlBlue博客系列。

最後,爲了簡化介紹,我建議首先介紹Git作爲CVS的直接替代品,然後逐一介紹其他更改。

+0

鑑於OP的名字,我認爲他已經遇到了alblue,否則這是一個很大的巧合...... – SteveD

+0

大聲笑,我看過他的博客文章,同時四處尋找Git的提示和教程,但沒有關係,只是巧合^。^ –