2012-08-09 189 views
0

我在項目SVN被設置爲混帳SVN克隆混亂

project 
branches/ 
tags/ 
trunk/ 

當過我做了

git svn clone -s -r ##:HEAD path/to/svn 

我得到的是一系列的文件和文件夾我相信來自trunk,當我做一個

git branch 

我看到的全部是master當我應該看到mastercleancleanbranches/之下)

那麼最新情況如何?

如果我做的:

git svn clone -r ##:HEAD path/to/svn 

然後我得到我的佈局:

project 
branches/ 
tags/ 
trunk/ 

混帳不承認branches下的分支。另外trunk也是branches ....

任何想法?

+0

「分支」?正確的頂層目錄通常是trunk/branches/tags(注意:branchES)。這對應於--stdlayout(-s)選項。你的佈局不是標準的,所以--stdlayout選項不適合你。我會建議改變你的SVN存儲庫佈局。 – 2012-08-09 15:13:43

+0

我的appoligies它是分支不分支。 – TheWebs 2012-08-09 15:24:44

+0

然後我很難理解這個問題。根據這些信息'-s'按預期工作。 'Trunk'在SVN和Git中都有分支的含義(從git-svn轉換而來),所以沒有什麼意外。 – 2012-08-09 15:51:30

回答

3

我相信你的分支是創建的,但你沒有看到它們,因爲它們是遠程分支。嘗試git branch -va。要使用這些遠程分支機構工作,你可以,例如,創建一個本地分支:

$ git checkout -b working_from_branch -t clean remotes/branches/clean

2

試試下面的命令:

git branch -r 

...這應該告訴你所有遠程分支這個倉庫意識到。假設你的分支/目錄是扁平的(沒有嵌套分支或分支層次結構),git svn clone -s應該自動識別它們。

這些不會顯示在git分支的默認響應中的原因是,直接在git的遠程分支上工作通常是不好的做法。當您將更改發送到遠程存儲庫時,無論發生什麼,遠程分支上的所有內容都將被髮送。通過檢出本地跟蹤分支,您可以選擇刪除提交(通過創建另一個本地跟蹤分支並複製您想要發送的更改)。要創建跟蹤分支,請使用:

git checkout -b master-mybranch -t mybranch 

其中mybranch是您想跟蹤的分支。我使用master- *作爲自己的約定,但只要它幫助您記住它是什麼,您就可以將跟蹤分支命名爲任何你喜歡的東西。祝你好運!