首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >‘`git克隆file:///DIRECTORY`与’`git克隆/DIRECTORY`‘

‘`git克隆file:///DIRECTORY`与’`git克隆/DIRECTORY`‘
EN

Stack Overflow用户
提问于 2016-08-18 17:09:24
回答 1查看 49关注 0票数 1

git clone命令有问题。当我跑的时候

代码语言:javascript
复制
$ git clone /SOURCE_DIRECTORY /TARGET_DIRECTORY

一切都很好,我

代码语言:javascript
复制
Initialized empty Git repository in /TARGET_DIRECTORY/.git/

当我运行这个命令时(只有file://添加)

代码语言:javascript
复制
$ git clone file:///SOURCE_DIRECTORY /TARGET_DIRECTORY

我得到了

代码语言:javascript
复制
Initialized empty Git repository in /TARGET_DIRECTORY/.git/
remote: Counting objects: 737, done.
remote: Compressing objects: 100% (189/189), done.
remote: Total 737 (delta 264), reused 725 (delta 256)
Receiving objects: 100% (737/737), 68.25 KiB, done.
Resolving deltas: 100% (264/264), done.
error: Trying to write ref HEAD with nonexistant object XXXXXXXX
fatal: Cannot update the ref 'HEAD'.

有人能告诉我,/DIRECTORYfile:///DIRECTORY之间有什么区别,为什么我在这里得到了不同的结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-19 00:12:37

从指向Git文档的链接中,@埃尔比凯对其进行了注释:

如果在URL开头显式指定file://,则Git的操作略有不同。如果您只是指定路径,Git尝试使用硬链接或直接复制它需要的文件。如果指定了file://,则Git会触发它通常用于通过网络传输数据的进程,而网络传输数据的效率通常要低得多。指定file://前缀的主要原因是,如果您想要一个干净的存储库副本,其中忽略了无关的引用或对象--通常是在从另一个版本控制系统导入之后或其他类似的东西之后。

因此,您看到的额外输出意味着Git正在旋转其网络堆栈来传输数据,而不是像在第一个示例中所做的那样执行本地副本。因此,除非您有理由使用网络堆栈来传输数据,否则最好删除file://

至于错误:

代码语言:javascript
复制
error: Trying to write ref HEAD with nonexistant object XXXXXXXX
fatal: Cannot update the ref 'HEAD'.

这些答案表明,使用较旧版本的Git可能会造成这种情况:

所以试着升级你的Git客户端。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39023895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档