2013-02-05 95 views
1

我們正在從SVN轉移到Git。SVN to Git。新分支新源

我在我們的服務器上設置了空的Git倉庫。在本地機器上設置一個工作目錄,並將完整的源代碼從SVN回購站下載到本地文件夾(工作目錄)。我將所有這些文件推送到master分支,並創建了兩個分支devstaging。這很好。

現在我想創建一個名爲v1.0的新分支,它具有完全不同的源代碼(很多新功能)。 我的計劃是創建一個名爲v1.0的新工作目錄(本地文件夾),並將源(從另一個SVN回購)導入到此文件夾。我想將此文件夾指向v1.0分支。

有人可以解釋如何做到這一點? (我對Git相當陌生)

在此先感謝。

+1

小心不要犯所有的'.svn'目錄Git –

+0

沒有。我只是手動下載所有源文件並將它們推送到git repo。所以我很好。不管怎麼說,多謝拉。 :-) –

回答

1

如果項目完全不同,則更有意義創建單獨的git回購。當從svn轉移到git時,主要的理念變化是傾向於爲每個邏輯模塊(例如庫,程序等)提供多個存儲庫。

但是,如果你真的想要一個單一的回購協議,你可以創建一個孤立分支:git checkout --orphan v1.0

+0

它並不完全不同。正如我所提到的,有很多新功能。創建一個新的回購...我如何合併這些新功能(可以說我創建了一個新的回購)與現有的分支?這是常見的情況嗎? –

+0

此外,目標是有一個單獨的'源'/'工作目錄' –

+0

@KevinRave不知道你是什麼意思。 git的工作目錄是你的項目文件夾。 git存儲庫是文件夾中的'.git'文件夾。使用git你通常有一個工作目錄,只需切換其內容。 – kan

0

如果我理解正確的,你目前並未與保持SVN歷史在你的Git倉庫所有關心,爲什麼不這樣做簡單的東西如:

$ cd project 
$ git checkout -b v1.0 
$ rm all files not needed 
$ # the above could also just be "rm *", just be careful to not delete .git 
$ cp -r /path/to/project-1.0/* . 
$ git add . 
$ commit -a -m "imported v1.0" 

混帳應自行找出哪些文件沒有被觸及,或重命名,或...

,並且具有所有在一個庫中,可以很容易地cherrypick(其中這是可能的)

+0

我明白你在做什麼。在第5行,您將所有文件從一個文件夾複製到git。但是,這是否使該文件夾作爲工作直接? –

+0

使用'git add --all'添加所有更改,包括已刪除/已移動的文件。 – kan