Git未排除.git目录:是否需将其加入.gitignore?原因何在?
关于Git追踪音乐文件夹元数据的问题解答
1. 完全应该把.git目录加入.gitignore
这不仅是合理选择,更是Git使用中的标准操作。.git目录是Git仓库的核心存储区,里面包含了所有提交历史、对象数据库、暂存区索引、分支指针等仓库本身的元数据——Git默认就会自动忽略这个目录(不需要手动添加也不会追踪它,除非你主动操作),把它纳入追踪完全是画蛇添足,还会引发一堆不必要的问题。
2. 监控.git目录导致频繁提交的原因
.git目录里的文件会频繁、自动地发生变化,哪怕你没有主动执行git commit或git add这类操作:
- 每次运行
git status(你的脚本可能隐含触发了相关操作),Git会更新.git/index文件(暂存区的快照),或者读写.git/refs/heads/下的分支指针文件; - 哪怕只是简单的文件状态检查,Git可能会修改
.git/logs/里的操作日志; - 甚至cron脚本运行时的环境变化、Git内部的自动维护操作,都可能让
.git目录下的某个文件的时间戳或内容改变。
你的脚本是用tree命令生成包含.git目录的结构和文件信息,每次运行都会检测到.git目录里的这些微小变化,自然会认为有需要提交的内容,导致每15分钟就执行一次提交。
额外建议
- 调整你的
tree命令,让它自动排除.git目录,比如用tree -I '.git'参数(不同系统的tree参数可能略有差异,可查man tree确认); - 在仓库根目录创建
.gitignore文件,明确添加一行:/.git/,确保Git永远不会追踪这个目录; - 确认你的
.list文件夹没有被.gitignore排除,保证元数据文件能正常被Git追踪。
内容的提问来源于stack exchange,提问作者Patrick Bateman
相关产品推荐
相关产品推荐

