我使用以下命令从我的主分支导出所有已更改的文件:
git archive --output=test_v2.zip HEAD $(git diff --name-only master)
然而它给了我以下错误:
error: unknown option `name-only'
usage: git archive [<options>] <tree-ish> [<path>...]
or: git archive --list
or: git archive --remote <repo> [--exec <cmd>] [<options>] <tree-ish> [<path>...]
or: git archive --remote <repo> [--exec <cmd>] --list
--format <fmt> archive format
--prefix <prefix> prepend prefix to each pathname in the archive
-o, --output <file> write the archive to this file
--worktree-attributes
read .gitattributes in working directory
-v, --verbose report archived files on stderr
-0 store only
-1 compress faster
-9 compress better
-l, --list list supported archive formats
--remote <repo> retrieve the archive from remote repository <repo>
--exec <command> path to the remote git-upload-archive command
我做错了什么?
它创建了test_v2.zip,但它是空的。
答案 0 :(得分:1)
您的示例在bash
中正常工作。但是你尝试在cmd.exe
中运行它。 $()
语法是用于启动子shell的Bash语法,执行随附的命令并用输出替换构造。
要么在Git Bash中做同样的事情(无论如何是更好的选择),要么使用cmd.exe
特定的构造(如果存在的话)。