哎呀,怎么才能把git中在指定日期内改动文件路径整理出来并打包?
使用git log命令
2023-11-01 开始时间
2023-12-30 结束时间
--no-merges 过滤到合并的commit路径
输出到当前目录中的1.txt中
git log --since="2023-11-01" --until="2023-12-30" --name-only --pretty=format: --no-merges > "1.txt"
从git仓库中导出在特定时间段内更改过的文件,并且打包为一个归档文件,方便部署或备份
-
命令内容:
git log --since="2024-01-09" --name-only --pretty=format: | sort | uniq | xargs tar -czvf update-archive.tar.gz
-
命令说明:
-
git log --since="2023-12-01" --name-only --pretty=format:
git log
: 这是git的日志命令,用于显示提交日志信息。--since="2023-12-01"
: 这个选项指定了一个开始日期,命令将只显示这个日期之后的提交。在这里是2023年12月1日。--name-only
: 这个选项告诉git仅列出提交中更改的文件名。--pretty=format:
: 这是一种格式化选项,用来指定输出的格式。这里它被设置为空,目的是仅输出文件名而不包含其他提交信息。
-
| sort | uniq
|
: 这是管道符号,在Unix和类Unix系统中,它用于将一个命令的输出作为另一个命令的输入。sort
: 这个命令将会对输入进行排序。uniq
: 这个命令用于过滤掉重复行,确保每个文件只被列出一次。
-
xargs tar -czvf update-archive.tar.gz
-
xargs
: 这个命令读取输入,并将其转换为tar
命令的参数。基本上,它把前面git log
命令得到的文件列表作为tar
命令的输入。 -
tar -czvf update-archive.tar.gz
: 这是一个用于创建新归档的tar命令。
-c
: 创建一个新的归档文件。-z
: 用gzip压缩归档。-v
: 在归档或解归档时,显示被处理的文件(详细模式)。-f update-archive.tar.gz
: 指定归档文件的名称,这里是update-archive.tar.gz
。
-
-
-
-
这条命令的工作流程如下:
git log
部分查找特定日期之后所有的提交,并列出其中更改的文件名。sort
和uniq
对这些文件名进行排序和去重,确保每个文件只被归档一次。xargs
和tar
组合使用,将所有独特的文件名打包进一个名为update-archive.tar.gz
的压缩归档文件中。