从GitHub上的存储库Git签出到基于SVN的现有本地存储库

时间:2013-01-14 22:32:12

标签: git svn version-control github

我最近从Subversion将项目迁移到GitHub,但当前工作的本地目录仍然是SVN本地存储库。由于复杂的原因,创建一个新的git clone本地存储库并不好,所以有没有办法从GitHub检查git存储库?

现在它给了我错误:

fatal: Not a git repository (or any parent up to mount parent )
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set)

显然,因为我没有使用git本地存储库。

3 个答案:

答案 0 :(得分:4)

    Subversion工作目录中的
  1. git init将使其成为git存储库。
  2. git remote add origin <url>,其中<url>是来自GitHub的HTTPS或SSH路径,将您的本地存储库连接到GitHub。
  3. git fetch origin将使用GitHub的所有历史记录更新您当地的Git存储库
  4. git reset origin/master会将您的本地主分支指向来自原始的最新主分支,而不会更改您的文件。
  5. 此时git status将显示您的本地工作目录与GitHub上的内容之间的任何差异。

答案 1 :(得分:3)

听起来你的核心问题是你试图以这种方式保持Subversion和Git存储库同步,Git应该只是对你的Subversion存储库的另一个视图。如果是这种情况,SubGit可能是一个解决方案:它提供了Subversion存储库的Git镜像,因此你可以在你的机器上坚持使用Subversion,同时还有额外的Git存储库。

答案 2 :(得分:0)

您无法创建git存储库的“SVN checkout”。

在git中,克隆存储库包括其所有历史记录。 git工具依靠它来执行它们的功能。在SVN中,所有历史记录都在服务器上,而本地端只是一个工作副本。

你将不得不做git clone。最接近SVN的工作方式是使用--depth = 1进行克隆,但结果检查会严重损坏。

如果你想要反思你所要求的 - 也就是说,你想使用带有上游SVN存储库的本地git客户端 - 答案是git-svn

如果你只是想减少重新下载的数量 - 你只说“复杂的原因”,所以我无法推断你的动机 - 只保留本地文件是不够的。正如我所提到的,git不仅存储文件的最新版本,还存储每个过去的版本。无论你做什么,都必须下载过去的版本信息。