使用 git-archive 时出现 Git pathspec 错误

问题描述 投票:0回答:2

我有两个分支

Master
Newsletterdesign
,我需要与
Newsletterdesign
的区别,但我对 git archive 有问题:

$ git archive -o Name.zip 5a5e099 $(git diff --name-only 5a5e099^..5a5e099)

Error: fatal: pathspec '-' did not match any files

有什么想法吗?谢谢你。

git branch archive
2个回答
0
投票

您尝试过的命令应该可以工作。这是正确的。你收到错误的原因是因为一些额外的文件没有添加到 git 中。请在

Untracked files
的帮助下检查是否有
git status
。如果您有任何未跟踪的文件,您可以将其添加到 git 或将其删除,或者您可以将其隐藏(
git stash
)

我尝试了你的命令,效果很好。

git archive -o update.zip HEAD $(git diff --name-only 70a1ab8^..f62c8eb)


0
投票

git diff #commit1 #commit2
获取提交之间的所有更改,然后将这些更改的引用传递给 archive 命令。如果在归档提交之间从 git 索引数据库中删除了一些文件,您将收到此错误,因为您自然不能将不存在的文件包含到 zip 中。因此,当扫描 git 更改时,您需要忽略已删除的文件。通过将选项
 --diff-filter=d
附加到 git diff 命令来执行此操作。整个(好的)命令将如下所示:

git archive -o update.zip HEAD $(git diff --name-only --diff-filter=d #ID_A #ID_B)

哈!

© www.soinside.com 2019 - 2024. All rights reserved.