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

Git-svn:创建并推送一个新的分支/标签?

如何解决《Git-svn:创建并推送一个新的分支/标签?》经验,为你挑选了2个好方法。

在使用带有-s选项(git svn clone http://server/repo -s)的git-svn克隆SVN存储库之后,如何创建分支或标记并在进入时已推送到存储库中的相关分支/标记目录dcommit

例如; 如果我要使用git在foobar本地创建一个分支(git checkout -b foobar)我怎么能让git-svn 在服务器上创建分支(http://server/repo/branches/foobar)?

我正在使用Git 1.5.5.6.


请注意:

该方法接受以下不使用Git 1.5.5.6工作,因为没有git svn branch方法.我仍在寻找解决方案,不涉及直接使用svn.



1> mipadi..:

您可以阅读本教程中的所有细节,但要点基本上如下:

$ git svn branch -m "Topic branch" my_topic            # Create SVN branch called "my_topic"
$ git checkout --track -b my-topic remotes/my_topic    # Create the Git branch for "my_topic"
# Hack hack hack...
$ git svn dcommit --dry-run    # Make sure you're committing to the right SVN branch
$ git svn dcommit              # Commit changes to "my_topic" branch in SVN


在v1.6.1中添加了`git svn branch`.我建议升级,因为1.5.5.6大约是一年半.
通过执行`git svn info`检查您的本地分支在创建后指向正确的远程分支也是一种很好的做法.
仅供参考,从GIT v1.8.3.2开始,第二个命令不再有效.您无法再使用此语法跟踪SVN分支,请参阅以下问题以获取更多信息:[git-svn:无法设置跟踪信息; 起点不是分支](http://stackoverflow.com/questions/19712735/git-svn-cannot-setup-tracking-information-starting-point-is-not-a-branch)

2> pestrella..:

如果您在subversion分支存在之前创建了本地分支,并且现在想要将本地分支推送到subversion分支,则可以执行以下操作:

获取分配给本地分支的svn分支修订

$ git svn info

从输出,URL字段将是当前的svn分支路径,Revision字段将是subversion修订号

从您创建本地分支的修订版创建svn分支

$ svn cp http://svn-repo/my_app/trunk@123 http://svn-repo/my_app/branches/feature1

获取新的svn分支,以便你的git repo知道它

$ git svn fetch

现在应该将svn分支添加为git仓库中的远程分支 $ git branch -a * feature1 master remotes/feature1

此时你的遥控器仍然是后备箱.您需要将本地分支指向新的远程分支.您可以通过从远程分支重新定位本地分支来执行此操作: $ git rebase remotes/feature1

现在您的本地分支引用了您的远程分支,您可以将更改提交到它.首先进行干运行,以确保您的更改将进入远程分支: $ git svn dcommit --dry-run Commiting to http://svn-repo/my_app/branches/feature1

现在您可以提交对远程分支的更改 $ git svn dcommit

大多数操作方法会告诉您先分支subversion,然后创建一个跟踪远程分支的本地分支.但我经常不提前决定我的本地分支机构是否应该跟踪远程分支.通常我在本地分支,并且无需推送到远程分支进行更改.如果我后来决定将我的本地分支提交到远程分支,我执行上述步骤.


@unpluggd:我认为这应该是公认的答案,因为它实际上回答了问题.也就是说,除非接受的答案假定在键入这些命令之前已创建并入侵了本地分支.
优秀!究竟!
推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有