git中用于天生commitId与其父commitId间的文件差异文件树

打印 上一主题 下一主题

主题 998|帖子 998|积分 2994

天生commitId与其父commitId间的文件差异文件树
  1. #!/bin/bash
  2. #
  3. #        用于生成目标commitId与其父commitId间文件差异
  4. #
  5. commit_id=$1  # 输入目标commit的哈希值
  6. old_dir="old_version"
  7. new_dir="new_version"
  8. # 创建目录
  9. mkdir -p "$old_dir" "$new_dir"
  10. # 获取差异文件列表
  11. files=$(git diff --name-only "${commit_id}^" "$commit_id")
  12. # 导出文件
  13. for file in $files; do
  14.     # 父commit版本
  15.     mkdir -p "$old_dir/$(dirname "$file")"
  16.     git show "${commit_id}^:$file" > "$old_dir/$file" 2>/dev/null || echo "[跳过] 父提交中不存在: $file"
  17.     # 当前commit版本
  18.     mkdir -p "$new_dir/$(dirname "$file")"
  19.     git show "${commit_id}:$file" > "$new_dir/$file" 2>/dev/null || echo "[跳过] 当前提交中不存在: $file"
  20. done
  21. mv "$old_dir" "$commit_id"_"$old_dir"
  22. mv "$new_dir" "$commit_id"_"$new_dir"
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表