当我没有svn凭证时,如何将svn存储库导出到git?

4

我有一个svn仓库的完整检出文件夹,但我没有svn仓库(托管在Unfuddle)的凭据。我想将此文件夹移动到一个新的git仓库(Github),并保留所有历史记录和更改。如果可能,我希望保留提交者。

如何将我的现有svn文件夹导出到Github?

1个回答

9

SVN检出不包含其自身的历史记录,因此您只能将其视为一组普通文件。

git init newgit
svn export yourcheckout newgit
git commit -a newgit

svn export会复制所有文件,但不包括隐藏的.svn目录。git commit -a会递归地将所有内容添加到更改控制并提交。当然,您需要输入提交注释。

要将其发布到github,请先在github上创建帐户,然后转到此处创建存储库:

http://help.github.com/create-a-repo/

假设你将其命名为 test,而你的账户名为 prabesh,那么它的全名是:
git@github.com:prabesh/test.git

创建 repo 时,github 会显示详细步骤。一旦 repo 创建成功,你可以将本地 svn 导出的 git repo 上传至 github,方法是先注册远程(github)repo,再将本地副本推送至 github。请保留 html 标签。
git remote add origin git@github.com:prabesh/test.git
git push -u origin master

谢谢您的建议。我正在寻找是否可以保留差异和日志的历史记录。但由于我没有凭据,我想我只能创建一个新的存储库。 - Prabesh Shrestha
2
你可以联系Unfuddle以恢复凭据,然后使用git-svn。这是一个git的附加组件,允许你导入SVN仓库及其历史记录。你可以执行git svn clone svnrepo - memetech
可能有点奇怪,但之前的开发人员已经离开了,现在我手上只剩下一个代码文件夹。我只是试图弄清楚他为什么要写这些代码 ;) - Prabesh Shrestha

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