如何在Git受控文件旁长期保留本地文件?
解决Git中个人配置/脚本文件不被提交且不被
git clean删除的问题 经常碰到这种情况——你有一堆自己用的配置文件、脚本,比如Qt Creator的.pro.user、Sublime Text的.sublime-project,或是个人本地配置、私用shell脚本,不想提交到Git仓库,但又怕git clean -fdx这类清理命令把它们删掉。下面给你几个实用的解决方案:
1. 项目级忽略:使用.gitignore文件
这是最通用的方案,适合团队里大家都需要忽略的文件(比如IDE配置),或者你不介意把忽略规则共享给其他人的情况。
操作步骤:
- 在仓库根目录创建或编辑
.gitignore文件 - 把需要忽略的文件/规则加进去,比如:
# Qt Creator个人配置 *.pro.user # Sublime Text项目文件 *.sublime-project # 本地个人配置 local-config.ini # 个人shell脚本 my-personal-helper.sh - 提交
.gitignore到仓库:git add .gitignore && git commit -m "Add ignore rules for personal files"
- 在仓库根目录创建或编辑
为什么有用:Git会自动忽略这些文件,
git clean -fdx只会删除未跟踪且未被忽略的文件,所以这些被标记的文件会被保留。注意:如果这些文件之前已经被提交到仓库过,得先执行
git rm --cached <文件名>把它们从Git的跟踪列表中移除,再添加到.gitignore提交。
2. 本地专属忽略:.git/info/exclude文件
如果你不想修改项目的.gitignore(比如你的个人脚本完全和团队无关),可以用这个本地专属的忽略文件,它不会被提交到远程仓库,只有你自己的本地仓库生效。
- 操作步骤:
- 打开仓库目录下的
.git/info/exclude文件(如果没有就创建) - 按照和
.gitignore一样的格式添加忽略规则,比如:# 我的私人调试脚本 debug-script.sh
- 打开仓库目录下的
- 优势:不用改动项目共享的
.gitignore,不会影响其他开发者,完全属于你的本地配置。
3. 标记文件为“假设未修改”:git update-index --assume-unchanged
针对单个文件,告诉Git“假装这个文件没有被修改”,适合那些你不想提交、但偶尔会修改的个人文件。
- 操作命令:
git update-index --assume-unchanged path/to/your/personal-file - 效果:Git不会再提示这个文件的修改,
git clean也不会删除它。 - 取消标记的命令:
git update-index --no-assume-unchanged path/to/your/personal-file - 注意:如果这个文件之前在仓库里,其他人修改并提交后,你拉取代码时可能会遇到冲突,所以更适合完全未被跟踪的个人文件。
额外小贴士
- 执行
git clean前,最好先加-n参数预览一下会删除哪些文件:git clean -fdxn,确认不会误删你的个人文件再执行真正的清理。 - 区分清楚“团队通用忽略”和“个人专属忽略”,通用的(比如IDE配置)放到
.gitignore共享,私人的用exclude或assume-unchanged。
内容的提问来源于stack exchange,提问作者detly
相关产品推荐
相关产品推荐

