git svn:如何通过git创建新的svn分支?

git svn:如何通过git创建新的svn分支?,git,version-control,git-svn,Git,Version Control,Git Svn,我有一个跟踪svn存储库的git存储库。我使用--stdlayout克隆了它 我通过git checkout-b foobar创建了一个新的本地分支机构 现在我希望这个分支在svn存储库中的../branchs/foobar中结束 我该怎么办 (截取了大量的调查文本。如果您愿意,请参阅问题历史记录)从git v1.6.1开始,git svn branch可用 从git文档: branch Create a branch in the SVN repository.

我有一个跟踪svn存储库的git存储库。我使用
--stdlayout
克隆了它

我通过git checkout-b foobar创建了一个新的本地分支机构

现在我希望这个分支在svn存储库中的
../branchs/foobar
中结束

我该怎么办


(截取了大量的调查文本。如果您愿意,请参阅问题历史记录)

从git v1.6.1开始,
git svn branch
可用

从git文档:

branch Create a branch in the SVN repository. -m, --message Allows to specify the commit message. -t, --tag Create a tag by using the tags_subdir instead of the branches_subdir specified during git svn init. 分支 在SVN存储库中创建分支。 -m、 --讯息 允许指定提交消息。 -t、 --标签 使用tags_subdir而不是Branchs_subdir创建标记 在git svn init期间指定。
git的早期版本没有提供创建svn分支的方法。

@kch I刚刚(2008年12月7日)编译了git的v1.6.1-rc1标记,它确实包含git svn branch命令及其文档。因此git的v1.6.1版本应该(希望)包含这个命令。

我知道这个问题不久前已经得到了回答,但在阅读之后,我认为它可能有助于添加特定git svn分支命令的示例,并将其与典型的工作流相关联

与kch一样,使用
git svn branch
。下面是一个完整的示例,(注意要测试的试运行的
-n
):

如果这一切顺利,服务器会给出如下回答:

正在r8914复制到

如果没有
-n
开关,服务器可能会添加如下内容:

找到可能的分支点:=>,8914

找到分支父级: (参考文献/遥控器/认证错误)

d731b1fa028d30d685fe260f5bb912cbf59e1971

使用do_开关跟随父级

成功跟踪父级r8915=6ed10c57afcec62e9077fbeed74a326eaa4863b8

(参考文献/遥控器/认证错误)

最好的部分是,现在您可以基于远程分支创建本地分支,如下所示:

git checkout -b local/auth_bug auth_bug
这意味着“签出并创建名为
auth_bug
的本地分支,并使其跟随远程分支(最后一个参数)
auth_bug

使用
dcommit
--dry run
-n
)测试您的本地分支是否在该远程分支上工作:

SVN服务器应回复新的分支名称:

致力于


事实上,我现在安装了1.6.1,并且该命令可用。相应地更新了我的答案。是的,git co意味着Jesper设置了git别名。更新了
git co
,并用
git checkout
替换了
git co
,这样这个示例就可以适用于任何人了。我已经对这个答案投了赞成票,但我不知道我又回来了多少次。谢谢re是git svn branch命令中一个棘手的部分-您必须联机才能以这种方式创建新分支。您可以在脱机状态下执行以下操作:1.
git checkout-b foobar
2.hack hack 3.
git commit-m“Done foobar”“
。在线时,通过执行1来推动这一变化<代码>git svn分支foobar2
git分支——设置上游foobar远程/foobar
3
git svn dcommit
。因此将步骤2替换为
git checkout-b foobar新遥控器/foobar
。3. <代码>git签出foobar4<代码>git rebase foobar new5。测试以确保分支现在提交给svn分支<代码>git svn DCOMIT--试运行6。最后实际提交
git svn dcommit
7。删除临时分支
git分支-D foobar新建相关问题:
git checkout -b local/auth_bug auth_bug
git svn dcommit -n