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

标签 git version-control git-svn

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

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

现在我希望这个分支在 svn 存储库的 …/branches/foobar 中结束。

我该怎么做?

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

最佳答案

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

就像 kch 回答的那样,使用 git svn branch。这是一个完整的示例,(注意用于空运行测试的 -n):

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

如果一切顺利,服务器回复如下:

Copying https://scm-server.com/svn/portal/trunk at r8914 to https://scm-server.com/svn/portal/branches/auth_bug...

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

Found possible branch point: https://scm-server.com/svn/portal/trunk => https://scm-server.com/portal/branches/auth_bug, 8914

Found branch parent: (refs/remotes/auth_bug)

d731b1fa028d30d685fe260f5bb912cbf59e1971

Following parent with do_switch

Successfully followed parent r8915 = 6ed10c57afcec62e9077fbeed74a326eaa4863b8

(refs/remotes/auth_bug)

最好的部分是,现在您可以像这样基于远程分支创建本地分支:

git checkout -b local/auth_bug auth_bug

这意味着“检查并创建名为 auth_bug 的本地分支,并使其跟随远程分支(最后一个参数)auth_bug

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

git svn dcommit -n

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

Committing to https://scm-server.com/svn/portal/branches/auth_bug ...

关于git-svn:如何通过 git 创建一个新的 svn 分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/266395/

相关文章:

git - 从 GitHub 中删除分支

linux - 如何只推送当前索引中的文件?

git-svn:有没有办法让它与子模块一起玩,或者忽略它们?

git - 预提交 Hook 失败后继续部分 git svn dcommit

git - 创建远程 Git 分支作为 SVN 存储库的特定 git-svn 分支的镜像

git - 如何编辑/更新构建任务 TFS 中的默认获取源步骤?

Git 命令行 - 知道是否在子模块中?

linux - git:在任何客户端推送后自动在服务器上运行 bash 脚本

git - 小提交消息还是大提交消息?

version-control - 为什么 Kiln 基于 Mercurial,而不是其他 (D)VCS