0

我在svn中有一个项目,设置为:

project
 branches/
 tags/
 trunk/

当我做一个

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

我得到的只是一系列文件和文件夹,我相信这些文件和文件夹来自trunk以及当我执行

git branch

我所看到的只是master我应该看到的时间mastercleanclean在下面branches/

发生什么了?

如果我做:

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

然后我得到我的布局:

project
 branches/
 tags/
 trunk/

git无法识别branches. 也是trunk一个branches....

有任何想法吗?

4

2 回答 2

3

我相信您的分支已创建,但您没有看到它们,因为它们是远程分支。试试git branch -va。例如,要使用这些远程分支,您可以创建一个本地分支:

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

于 2012-08-09T17:35:41.360 回答
2

尝试以下命令:

git branch -r

...这应该向您显示该存储库知道的所有远程分支。假设您的分支/目录是平面的(没有嵌套分支或分支层次结构), git svn clone -s 应该会自动识别它们。

这些没有出现在对 git 分支的默认响应中的原因是直接在 git 中的远程分支上工作通常是不好的做法。当您将更改发送到远程存储库时,无论如何都会发送远程分支上的所有内容。通过签出本地跟踪分支,您可以保留删除提交的选项(通过创建另一个本地跟踪分支,并复制您想要发送到那里的更改)。要创建跟踪分支,请使用:

git checkout -b master-mybranch -t mybranch

其中 mybranch 是您要跟踪的分支。我使用 master-* 作为我自己的约定,但是您可以将跟踪分支命名为任何您喜欢的名称,只要它可以帮助您记住它是什么。祝你好运!

于 2012-08-09T19:01:39.067 回答