1

我正在尝试将我的一个 SVN 存储库移动到 GitHub 中的新存储库。

由于我对 Git 还没有太多经验,因此我正在尝试按照我在 Stack Overflow 和 GitHub 上找到的说明进行操作。

  • 我只需要项目的主干,它与其他几个项目一起在一个存储库中。
  • 我想保留我的历史
  • 我不打算很快回到 SVN

我执行了以下命令。我在这里错过了什么/做错了什么?

git svn init https://svn.my-domain.org/svn/MyRepository/MyProject/trunk/
git svn fetch
git remote add origin git@github.com:MyUserName/myrepository.git
git config branch.master.remote origin
git config branch.master.merge refs/heads/master
git push

最后一个命令给了我以下错误:

To git@github.com:MyUserName/myrepository.git

 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@github.com:MyUserName/myrepository.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我知道我必须将我的 GitHub 存储库(witch 只有自述文件)与本地 Git 存储库与来自 SVN 的文件/历史记录合并。

我以不同的方式尝试了 git push,但没有成功。我应该如何执行推送?

提前致谢

4

1 回答 1

2

如果你不关心 GitHub 初始化文件(.gitignore 或 README.md),你可以:

git push --force

如果您执行git pull,那将添加到您当前提交的来自 GitHub 的提交及其内容。
然后一个git pull会工作。

不要忘记你可以在 GitHub 上创建一个完全空的 repo,这意味着你可以推送任何你想要的历史。
只需取消选择“使用 README 初始化此存储库”选项

https://github-images.s3.amazonaws.com/help/repo-create-name.png

于 2013-10-27T17:18:09.873 回答