如何将带日期命名的多版本Excel文件作为同一文件提交至GitHub?
解决方法:将多版本Excel归档为Git同一文件的历史版本
先修正你脚本的核心问题
你的脚本无法运行主要是语法错误(引号不匹配)+日期转换逻辑错误+参数使用不当,直接用下面的修正版脚本即可解决:
操作步骤
- 把所有10个Excel文件放到一个单独的文件夹,打开终端进入该文件夹
- 初始化Git仓库(如果还没弄的话):
git init
- 执行以下修正后的脚本:
# 按日期顺序遍历文件(确保从最早版本到最晚版本提交) for file in $(ls -v *.xlsx); do # 提取文件名里的归档日期(前6位) date_str=${file:0:6} # 转换为Git识别的YYYY-MM-DD格式 git_date="20${date_str:0:2}-${date_str:2:2}-${date_str:4:2}" # 重命名为目标文件名 mv "$file" "SLR Adversity - Analysis.xlsx" # 把文件加入Git暂存区 git add "SLR Adversity - Analysis.xlsx" # 提交,设置提交日期为原归档日期,提交信息标注版本日期 git commit --date="$git_date" -m "Version $date_str" done
- 推送到GitHub仓库:
# 替换为你的GitHub仓库地址 git remote add origin https://github.com/你的用户名/你的仓库名.git git push -u origin main
脚本修正说明
- 按日期顺序处理:用
ls -v确保文件从最早的YYMMDD到最晚的被遍历,保证Git历史时间线正确 - 简化日期提取:直接用字符串截取
${file:0:6}获取日期,比sed更可靠 - 正确的日期格式转换:把YYMMDD转为
20YY-MM-DD,符合Git的日期要求 - 修复提交参数:用
--date设置提交的历史日期(而非--author-date,后者是修改作者的提交时间,没必要),同时修正了原脚本的引号不匹配问题 - 清晰的提交信息:用
Version XXXXXX标注每个版本对应的归档日期,方便后续查看历史
原脚本的问题点
git commit命令里的引号未闭合,导致语法错误,循环无法正常执行- sed日期转换逻辑颠倒,把YYMMDD转换成了
20DD-MM-YY,日期完全错误 - 错误使用
--author-date参数,应该用--date来设置提交的历史时间 - 未按日期顺序遍历文件,可能导致Git历史时间线混乱
内容的提问来源于stack exchange,提问作者flxflks
相关产品推荐
相关产品推荐

