2010-05-14 81 views
17

所以我不是一個源代碼管理專家,我過去曾經使用過Subversion的項目。我必須將Git用於特定項目(客戶端提供的Git回購)。如何將樹幹/分支概念從Subversion轉換爲Git?

我的工作流程是這樣,我會在文件中工作從兩個不同的計算機,而且往往我需要時,我從一個地方到另一個地方,所以我可以繼續我的工作是不穩定的變化來檢查。然後出現的情況是,當客戶去獲得最新版本時,他們也會下載不穩定的代碼。

在SVN,你可以通過創建一個主幹解決這個問題和使用工作分支機構,或使用後備箱的工作版本,並創建穩定的分支。

什麼是Git的等價的概念,也沒有簡單的方法通過GitHub上做到這一點?

回答

17

有很多不同的方法來做到這一點。如果你必須從計算機轉移到計算機,你將切換到不同的存儲庫,這意味着你會推動你對遠程倉庫的更改。這很好,但它也意味着你

一個很簡單的例子是隻在私有分支執行你的工作不穩定,並命名爲明顯的東西,例如unstable-development。以下是如何從頭開始做到這一點。首先,讓我們從您客戶的網站做一個新的回購,我將其稱爲「祕密醬油」。

$ git clone git://example.com/repositories/secret-sauce.git 

你仍然在master分支,默認。讓我們做一個新的分支,以便你可以在那裏提交東西,而不是在master

$ git branch unstable 
$ git checkout unstable 
Switched to branch 'unstable' 

好的。現在,讓我們添加一些不穩定的代碼:

$ touch kablammo.txt 
$ git add * 
$ git commit -m "Added unstable code." 
[master (root-commit) 9428aef] Initial checkin. 
0 files changed, 0 insertions(+), 0 deletions(-) 
create mode 100644 kablammo.txt 

眼下,unstable只有在你身邊存在。請注意,當我們克隆時,我們得到一個名爲origin的遠程存儲庫,它有一個相應的master分支。當你的本地倉庫知道遠程倉庫的分支時,我們稱之爲「追蹤分支」。你可以看到所有遠程跟蹤分行與git branch -r

$ git branch -r 
    origin/HEAD -> origin/master 
    origin/master 

好。讓我們推回我們的修改!

$ git push origin unstable 

這就是它 - 我們現在的變化住在遠程回購的unstable分支。如果我們想再次看到master分支上的人員,我們可以使用git checkout master再次切換回去。

+0

比x個「教程」要好一些,這些教程需要一個簡單的過程並使其變得複雜。 – Thufir 2012-08-09 05:34:37

9

我這找到一種寶貴的資源:A Successful Git Branching Model

不同於SVN,Git是分散的。您不需要將不穩定的代碼推送到客戶端的存儲庫。您可以簡單地將不穩定的代碼從第一臺計算機拖到第二臺計算機上。

話雖如此,git的把手支偉大的,應該是你最終使用的任何方法的一個組成部分。