当前位置:  开发笔记 > 运维 > 正文

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

如何解决《git-svn:如何通过git创建一个新的svn分支?》经验,为你挑选了2个好方法。

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

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

现在我希望这个分支最终…/branches/foobar进入svn存储库.

我该怎么做?

(剪了很多调查文本.如果你关心,请查看问题历史)



1> Jesper Rønn-..:

我知道这个问题已经回答了一段时间,但在阅读之后,我可能会帮助添加特定git svn分支命令的示例并将其与典型的工作流程联系起来.

像kch回答一样,使用git svn branch.这是一个完整的例子,(注意-n干运行测试):

git svn branch -n  -m "Branch for authentication bug" auth_bug

如果这很顺利,服务器会回复如下答案:

复制https://scm-server.com/svn/portal/trunk在r8914到https://scm-server.com/svn/portal/branches/auth_bug ...

如果没有-n交换机,服务器可能会添加如下内容:

发现可能的分支点:https://scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug,8914

找到分支父母:(refs/remotes/auth_bug)

d731b1fa028d30d685fe260f5bb912cbf59e1971

以下是do_switch的父级

成功跟随父母r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8

(参考文献/遥控器/ auth_bug)

最好的部分,现在你可以根据你的远程分支创建一个本地分支,如下所示:

git checkout -b local/auth_bug auth_bug

这意味着"签出并创建本地分支命名auth_bug并使其跟随远程分支(最后一个参数)auth_bug

使用dcommitwith --dry-run(-n)测试本地分支在该远程分支上的工作方式:

git svn dcommit -n

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

致力于https://scm-server.com/svn/portal/branches/auth_bug ...


在`git-svn branch`命令中有一个棘手的部分 - 你必须在线才能以这种方式创建一个新的分支.您可以在离线状态下执行以下操作:1.`git checkout -b foobar` 2. hack-hack-hack 3.`git commit -m"Done foobar"`.当在线推动这一变化时,做1. 1. git svn branch foobar` 2.`git branch --set-upstream foobar remotes/foobar` 3.` git svn dcommit`.
我已经投了这个答案,但我不知道有多少次我一直回来.谢谢!
使用`git checkout`更新并替换`git co`,以便该示例可以适用于任何人
是的,git co意味着Jesper建立了一个git别名.

2> kch..:

从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.

以前版本的git不提供创建svn分支的方法.

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有