Git svn工作流程,在Git svn中创建分支

Git svn工作流程,在Git svn中创建分支,svn,git,git-svn,Svn,Git,Git Svn,我有一个使用git的项目 我们公司改变了政策,希望每个人都改用svn 因此,我使用标准布局(主干、分支和标记)在subversion中导入了我的项目 因此,我当前的工作流程如下: 进行一些更改,将它们放在临时区域,然后将它们提交给git。然而,当谈到svn时,我有点困惑。首先,我重新设置基址以从subversion获得最新的更改。然后我做一个数据委托 i、 e 暂存更改文件 git version 1.7.3.3 将它们提交给git git stage app_driver.c 从svn获取

我有一个使用git的项目


我们公司改变了政策,希望每个人都改用svn

因此,我使用标准布局(主干、分支和标记)在subversion中导入了我的项目

因此,我当前的工作流程如下:

进行一些更改,将它们放在临时区域,然后将它们提交给git。然而,当谈到svn时,我有点困惑。首先,我重新设置基址以从subversion获得最新的更改。然后我做一个数据委托

i、 e

暂存更改文件

git version 1.7.3.3
将它们提交给git

git stage app_driver.c
从svn获取最新的更改

git commit -m"Added some changes"
将我的最新更改提交给svn

git svn rebase
将更改推送到我的git存储库

git svn dcommit
然而,当我在git中创建一个新分支,以及如何在subversion中提交该分支时,真正的困惑就来了

git push upstream my_project
那么我如何在svn中创建新分支并提交它呢


非常感谢您的建议,

我通常使用svn copy在subversion中创建分支

例如,假设我的行李箱在 我想在中创建一个分支,我会:

git checkout -b add_new_feature
好的,这样就不用创建svn分支了,但是要用git获取这个分支,我需要转到我的目录并执行git svn获取。这将从svn获取内容,但不会修改您当前的分支

如果您使用git svn init--stdlayout启动项目,那么在执行git branch-r时,将显示您的分支。然后,您可以使用如下方式签出它:

svn copy https://svnserver/svn/MyProject/trunk https://svnserver/svn/MyProject/branches/my-branch
注意:不要对本地分支和远程分支使用相同的名称,否则git会抱怨(尽管它可以工作)


然后你就可以正常工作了

在本例中,我将首先在subversion中创建分支,因为听起来您希望有一个长期开发分支,该分支稍后将与/trunk的内容合并

当我想对/trunk中的任何内容执行短期修复时,我会执行您想执行的操作:

git checkout -b my_local_branch_name my_remote_branch_name
然后换掉

然后,当我想把它放进行李箱时:

git checkout -b add_quick_change

这应该将所有历史记录复制到master中,以便在dcommit之后它最终变成subversion。

“我们公司改变了政策,希望每个人都切换到svn。”你不经常听说有人朝着这个方向移动。他们为什么做出这样的决定?我发现了一种避免subversion抱怨同名并保持分支名称有序的方法:可以使用git svn init--prefix=svn/--stdlayout初始化repo。如果这样做,则创建的任何远程分支都将具有名称svn/。
git checkout master
git pull --no-squash . add_quick_change
git svn dcommit