哎呀,怎么才能把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仓库中导出在特定时间段内更改过的文件,并且打包为一个归档文件,方便部署或备份

  1. 命令内容:

    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
  2. 这条命令的工作流程如下:

    1. git log部分查找特定日期之后所有的提交,并列出其中更改的文件名。
    2. sortuniq对这些文件名进行排序和去重,确保每个文件只被归档一次。
    3. xargstar组合使用,将所有独特的文件名打包进一个名为update-archive.tar.gz的压缩归档文件中。
posted @ 2023-12-01 11:54  青柚  阅读(64)  评论(0编辑  收藏  举报