我一直试图通过阅读git-svn手册来解决这个问题,但我很难理解如何实现它。
我想做的是:
我如何实现这一目标?
答案 0 :(得分:4)
git-svn的建议工作流程:
git-svn
拉取。master
。不要直接在这个分支上工作。git checkout -b <feature>
)。git rebase master
。
5A。如果您想在此时引入svn更新,请切换到master并执行git svn rebase
。 然后切换回功能分支,执行git rebase master
。git merge <feature>
。git svn dcommit
将更改推送到svn。请记住,一旦完成git svn dcommit
,您的所有更改都将对其他人可见。因此,在执行git svn dcommit
之前,请务必确保您已正确完成任务。
答案 1 :(得分:0)
你想使用git-svn。我不确定可用教程的状态是什么,但这里有一些东西可以帮助你入门。
创建本地git仓库。
How to git-svn clone the last n revisions from a Subversion repository?
要从svn获取新版本,请使用git svn fetch
。这将获取新的修订并将它们放在远程分支上。您可以在自己的分支上进行任何所需的更改,然后使用git svn dcommit
进行提交。
但是,我会小心git merge
命令。使用git-svn时,我总是建议使用rebase,并使您的历史严格保持线性。 svn无法很好地跟踪git分支。如果你在git中有一个分支历史并尝试将其推送到svn,svn将只能代表该历史的一半。您不会丢失任何代码,但您将丢失提交的粒度。