如何从git导出所有分支更改文件与本地master相比

时间:2017-02-07 18:33:16

标签: windows git export

我使用以下命令从我的主分支导出所有已更改的文件:

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,但它是空的。

根据我的研究,我认为我不应该使用$ sign但我不知道该使用什么。 enter image description here

1 个答案:

答案 0 :(得分:1)

您的示例在bash中正常工作。但是你尝试在cmd.exe中运行它。 $()语法是用于启动子shell的Bash语法,执行随附的命令并用输出替换构造。

要么在Git Bash中做同样的事情(无论如何是更好的选择),要么使用cmd.exe特定的构造(如果存在的话)。