SVN到git的迁移只会创建.git文件夹

SVN到git的迁移只会创建.git文件夹,git,git-svn,version-control-migration,svn2git,Git,Git Svn,Version Control Migration,Svn2git,我正在尝试从svn迁移到git。我试着使用以下工具来实现 git-svn svn2git 但是,这两个工具只创建了一个.git文件夹,没有签出文件和文件夹(即工作副本) 使用gitsvn我尝试执行以下命令 git svn clone REMOTE_SVN_REPO svn2git REMOTE_SVN_REPO 我到底做错了什么 p、 我尝试过谷歌搜索,但所有的博客都声称这两个命令都应该建立一个包含所有文件和文件夹的本地存储库。还有一次,我使用hg convert将svn项目转换为mercu

我正在尝试从svn迁移到git。我试着使用以下工具来实现

git-svn
svn2git
但是,这两个工具只创建了一个
.git
文件夹,没有签出文件和文件夹(即工作副本)

使用
gitsvn
我尝试执行以下命令

git svn clone REMOTE_SVN_REPO
svn2git REMOTE_SVN_REPO
我到底做错了什么


p、 我尝试过谷歌搜索,但所有的博客都声称这两个命令都应该建立一个包含所有文件和文件夹的本地存储库。还有一次,我使用hg convert将svn项目转换为mercurial项目。在将svn项目转换为mercurial项目后,我完成了hg up或类似的工作,它带来了项目的所有文件和文件夹,我可以轻松地将该项目推送到mercurial服务器。这里我只有一个.git文件夹。我遗漏了哪一步,或者我到底做错了什么?

嗯,
git svn
是远程svn存储库的git后端。您可以将其视为双向代理——在内部,它模拟VPN命令,并允许其用户使用给定的SvN存储库,就像它是Git存储库一样。对于世界上的其他地方,用户仍然使用SVN,在本例中,GIT只是SVN上一个方便的包装器

因此,使用
git svn
您可以在
.git
文件夹中获得svn存储库中所有提交的个人镜像(如果您使用
-r
选项选择了一些提交或选择了一些分支,则仅是其中的一部分)。您可以使用
gitk--all
命令检查整个导入的提交,并使用
git checkout
检查选定的提交,或者只需在gitk中单击提交并选择相应的菜单项

现在,您应该首先在本地提交更改(就像使用普通GIT存储库一样),然后使用
GIT SVN dcommit
将更改推回到SVN存储库。在推送到SVN回购的过程中,提交将被“重新播放”,就好像是由普通的SVN客户端完成的一样。与通常的SVN提交一样,可能存在冲突和其他类似的问题。使用
git svn fetch
git svn rebase
git svn--help
页面中描述的其他命令,重新设置对更新树的更改并解决冲突

另一方面,
svn2git
是一种将现有本地SVN存储库(即SVN提交数据库的内容)转换为本地GIT存储库的方法。通常,当整个团队或公司决定完全从SVN迁移到GIT时,此步骤只执行一次。在转换之后,您将实际获得GIT的所有好处(复杂的分支和合并,为代码审查使用特定于GIT的系统进行eleborate*等等)

  • 当然,也有基于SVN或与SCM无关的代码检查系统。然而,这种系统通常一次使用一个给定的补丁,而不是一系列有序的更改。这两种方法都有利弊,但我个人更喜欢有变化顺序的方法

关于mercurial的最后一部分,您到底想告诉我们什么?我很难理解这与这个问题有什么关系。此外,
git svn
应该已经创建了一个存储库的工作副本,因为现在肯定还有一些你没有提到的东西。你确定这些就是你使用的命令吗?