我最近从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本地存储库。
答案 0 :(得分:4)
git init
将使其成为git存储库。git remote add origin <url>
,其中<url>
是来自GitHub的HTTPS或SSH路径,将您的本地存储库连接到GitHub。git fetch origin
将使用GitHub的所有历史记录更新您当地的Git存储库git reset origin/master
会将您的本地主分支指向来自原始的最新主分支,而不会更改您的文件。此时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不仅存储文件的最新版本,还存储每个过去的版本。无论你做什么,都必须下载过去的版本信息。