要将包含历史记录的SVN存储库迁移到新的Git存储库,您可以按照以下步骤操作:
在开始迁移之前,您需要安装svn2git工具。该工具可以将SVN存储库转换为Git存储库,并保留所有的提交历史记录。您可以使用以下命令在您的计算机上安装svn2git:
sudo apt-get install svn2git
在您的代码托管平台(如GitHub、GitLab、Bitbucket等)上创建一个新的Git存储库。请记下该存储库的URL,因为您需要将SVN存储库转换为该URL的远程存储库。
在您的计算机上打开终端,进入SVN存储库所在的目录。运行以下命令配置svn2git:
svn2git https://example.com/path/to/svn/repo --trunk=trunk --branches=branches --tags=tags --authors authors.txt
其中,https://example.com/path/to/svn/repo
是SVN存储库的URL,--trunk=trunk --branches=branches --tags=tags
指定了SVN存储库的布局,--authors authors.txt
指定了一个文件,该文件将SVN提交者映射到Git提交者。
如果您没有authors.txt文件,可以使用以下命令生成:
svn log https://example.com/path/to/svn/repo | grep -E 'r0-9+ | .+' | sort -u > authors.txt
该命令将从SVN存储库中提取所有提交者的信息,并将其保存到authors.txt文件中。
在配置完成后,运行以下命令将SVN存储库转换为Git存储库:
svn2git https://example.com/path/to/svn/repo --trunk=trunk --branches=branches --tags=tags --authors authors.txt
该命令将转换SVN存储库,并将其保存到当前目录下的一个新的Git存储库中。
最后,运行以下命令将转换后的Git存储库推送到您在步骤2中创建的远程Git存储库:
git remote add origin https://example.com/path/to/git/repo
git push --all origin
git push --tags origin
该命令将推送所有分支和标签到远程Git存储库。
现在,您已经成功将包含历史记录的SVN存储库迁移到新的Git存储库。
领取专属 10元无门槛券
手把手带您无忧上云