#!/bin/bash # 脚本名称: git_history_exporter.sh # 功能: 提取所有分支的提交记录,按时间排序,并输出到文件。 # 输出文件名 OUTPUT_FILE="git_commit_history_with_branches.txt" echo "=======================================================" echo " 💻 Git 提交历史导出脚本 (含分支信息) 📜" echo "=======================================================" # **新格式定义:** # %ad: 日期 | %h: 哈希 | %d: **引用/分支名称** | %an: 作者 | %s: 主题 | %n%b: 换行和正文 COMMIT_FORMAT="%ad | %h %d | %an | %s%n%b" echo "正在从所有分支提取提交记录,并按时间排序..." # 运行 git log,并将结果直接写入文件 # --all 确保查看所有分支 # --decorate=short 确保 %d 输出的引用信息简短 # --reverse 按时间从早到晚排序 git log --all --reverse --decorate=short \ --date=format:'%Y-%m-%d %H:%M:%S' \ --pretty=format:"$COMMIT_FORMAT" \ > "$OUTPUT_FILE" # 在 MINGW64 环境下,添加换行符兼容性修复 echo "正在确保文件换行符兼容 Windows (CRLF)..." # 使用 sed 确保文本文件在 Windows 记事本中正常显示 sed -i 's/\r$//' "$OUTPUT_FILE" sed -i 's/$/\r/' "$OUTPUT_FILE" echo "✅ 提交记录已成功导出到文件:" echo " $OUTPUT_FILE" echo "======================================================="