将带有历史记录的git仓库推送到远程subversion

3
我想通过git-svn将我的现有git存储库及其完整历史推送到远程子版本控制存储库。这样做是否可以保留提交历史记录?我已经重新基于我的更改,因此只有一个最新的主分支。
1个回答

2

是的,如果你已经进行了变基操作(即没有要推送的合并提交),dcommit将保留历史记录。但是,所有修订版本在svn上的用户名将保留推动者的凭据。


我觉得你没有理解我的意思。我想将一个我已经工作了一段时间的现有git存储库推送到一个子版本远程。在所有的教程中,都显示我必须先创建一个子版本存储库并通过git svn clone克隆它,但我想直接推送它以及它的所有历史记录。在我克隆存储库之前,我无法运行dcommit,因为git svn不会知道我的远程存储库。 - uloco
从技术上讲,您可以创建一个新的svn仓库,将其作为git的远程添加(手动编辑.git/config),然后执行 git rebase svn/trunk && git svn dcommit - Mykola Gurov
将其添加到git作为远程库是一个好主意吗?如果我不小心运行git push会发生什么? - uloco
我现在的做法如下: 创建了一个 SVN 仓库,git svn clone svn:/path/to/repocd /repo/namegit pull /path/to/local/existing repogit svn rebasegit svn dcommit。这对我很有效。 - uloco
@uloco 我的意思不是将其添加为常规的 git 远程,而是作为 svn 远程添加,请查看您的 git-svn 转换后仓库的 .git/config 文件中的 svn-remote 部分。当然,将其通过 git svn clone 命令克隆到新的 git 仓库也是一种选择。 - Mykola Gurov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接