2

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

git diff --name-only commitid1 commitid2 > ../result.txt

result.txt 的示例:

Web/A/Recoverpw.aspx
Web/B/Root.aspx

但我想将它们导出为结构文件夹中的文件。例子:

Web
|__A
   |__Recoverpw.aspx
|__B
   |__Root.aspx

导出的文件必须是最新的,来自本地存储库。请帮我。谢谢。

4

1 回答 1

0

唯一接近的命令是git archive,您可以为此指定要在(zip 或 tar)存档中导出的路径列表,您可以在其他地方取消存档。

但这不是仅获取所需文件的便捷方式。

另一种方法是:

  • 克隆你的本地仓库
  • 删除所有列出git diff输出的文件

实际上,更简单的方法是从git diff路径复制每个文件。
请参阅“ linux:如果不存在则复制并创建目标目录

cp --parents a/b/c existing_dir

将文件 ' a/b/c' 复制到 ' existing_dir/a/b/c',创建任何缺少的中间目录。

于 2013-06-14T07:12:30.940 回答