从多个提交中导出已更改的文件和文件夹

11 浏览
0 Comments

从多个提交中导出已更改的文件和文件夹

我找到了一个Git命令,但它只会在两个提交ID之间导出文件名,并保存在一个文件中。\n

\ngit diff --name-only commitid1 commitid2 > ../result.txt\n

\n一个result.txt的示例内容:\nWeb/A/Recoverpw.aspx\nWeb/B/Root.aspx\n\n但我想将它们导出为一个具有相应结构的文件夹中的文件。示例:\nWeb\n|__A\n |__Recoverpw.aspx\n|__B\n |__Root.aspx\n\n导出的文件必须是最新的,从本地仓库获取。请帮助我。谢谢。

0
0 Comments

问题的原因是现有的Git命令无法方便地从多个提交中导出已更改的文件和文件夹。虽然可以使用git archive命令将指定路径的文件导出为压缩文件,但这并不是获取所需文件的方便方式。另一种方法是克隆本地仓库,然后根据git diff输出的文件列表删除其他文件。实际上,更简单的方法是将每个文件从git diff中复制到指定路径下。可以使用cp --parents a/b/c existing_dir命令将文件a/b/c复制到existing_dir/a/b/c路径下,并在必要时创建中间目录。

问题的解决方法是编写一个VB脚本,在Windows环境下运行。

0