git 导出变动文件,包括目录结构

2024-04-25 0 1
手机查看

仅导出修改的文件

git 下执行以下命令:

git diff --name-only | xargs zip diff-changes.zip

也可以使用 tar -cvf

如果比较两个提交点,可以这样:

git diff --name-only 51828d5e34534dfgsfgsdfgsdfgea72bbb0bd3d7 ceeacb036db34534dfgsdgsfdgsdfcc0290a76aa | xargs zip diff_343443.zip

如果直接导入到某个文件夹,可以这样:

git diff --name-only | xargs zip /tmp/tmp.zip
unzip -o /tmp/tmp.zip -d  /path/target
rm -f /tmp/tmp.zip

unzip -o 当目标文件已存在则覆盖,-n 则不覆盖

也可以导入前先清空目标文件,比如:

git diff --name-only | xargs zip /tmp/tmp.zip
rm -rf /path/target/*
unzip -o /tmp/tmp.zip -d /path/target
rm -f /tmp/tmp.zip

导出修改、新增和重名的文件

注意:以上命令只适用于修改的文件,如果是新增的和重命名的就不行了,修改,新增和重名可以用下面的命令(推荐):

git status --porcelain | awk '{if ($1 == "M" || $1 == "A" || $1 == "??") print $2}' | xargs zip diff-changes.zip

仅导出删除的文件

如果仅导出删除的文件,可以使用以下命令:

git status --porcelain | awk '{if ($1 == "D") print $2}' | xargs zip diff-changes.zip
What do you think?
  • 点赞
    0
    点赞
  • 踩一下
    0
    踩一下
  • 酷毙了
    0
    酷毙了
  • 不屑
    0
    不屑
  • 尴尬
    0
    尴尬
  • 无聊
    0
    无聊
Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v3.5.6