【问题标题】:Why GIT reports "fatal: This operation must be run in a work tree" when exporting from bare repo?为什么从裸仓库导出时 GIT 报告“致命:此操作必须在工作树中运行”?
【发布时间】:2011-03-01 02:12:23
【问题描述】:

如果我使用 git archive 命令从裸 GIT 存储库导出,我会收到错误消息: “致命:此操作必须在工作树中运行”,尽管导出正确通过。

所以我的问题是:从裸存储库导出时有什么问题吗?我检查了导出的存档,看起来没问题。

【问题讨论】:

  • 你不是还在使用 1.6.0.3 吗?

标签: git export archive


【解决方案1】:

正如"backing up project which uses git" 中提到的,git bundle 会更合适。

git archive 只是创建树的压缩包(快照),但不保留提交和历史记录。

但您可能需要一份简单的副本,而不是捆绑在一个文件中的所有历史记录。

话虽如此,如果git archive 期望有一个工作树(如“How to do a Git export”中所示),则它的错误消息是期望在一个根据定义没有工作目录的裸仓库中。

【讨论】:

  • 我需要创建一个包含纯工作副本的存档,因此 git bundle 可能不可用。我当然可以克隆到普通(非裸)存储库并在那里调用 git archive ,但我不知道是否有必要,因为 git archive 显然也适用于裸存储库。我只是不知道错误消息是否真的意味着导出可能失败,或者该消息是否由于某些历史原因而存在。
【解决方案2】:

我实际上没有收到该警告 - 我相当确定这是一个错误,在您使用的版本之后的某个时间已解决。我不知道确切的时间,因为我什至根本无法重现它(我尝试了 v1.5.3.4、v1.6.2 和当前主服务器的构建。)

【讨论】:

  • 啊,谢谢。我收到 git 版本 1.5.6.5 (Debian stable) 的消息。
猜你喜欢
  • 2012-03-04
  • 2021-10-14
  • 1970-01-01
  • 2017-02-14
  • 2019-06-19
  • 2012-09-10
  • 2013-05-09
  • 2018-08-26
  • 1970-01-01
相关资源
最近更新 更多