如何配置Git自动忽略仓库中的其他Git仓库?
万全自动忽略子Git仓库的方案
方法1:通过.gitignore实现全局匹配忽略
这是最一劳永逸的方式,直接在主仓库的.gitignore里加规则,不管克隆进来的测试仓库叫什么名字,都会被自动忽略:
# 忽略所有一级子目录(克隆的测试仓库都是这类) */ # 保留主仓库自己的脚本文件和必要子目录 !*.sh !*.py !src/ !scripts/
解释:
*/会匹配所有主仓库下的一级子文件夹,把所有克隆进来的测试仓库直接排除。- 后面的
!规则是取消忽略你自己需要保留的文件和目录,比如根目录下的脚本、你自己维护的子目录,根据实际情况修改就行。
如果担心误忽略更深层级的目录,也可以精准匹配子仓库的核心特征——每个子仓库都有.git目录,所以加这条:
# 忽略任何包含.git目录的文件夹 */.git/
但结合*/的规则更彻底,能直接防止你误选整个子仓库文件夹。
方法2:临时处理已存在的子仓库
如果已经有测试仓库被加到了暂存区,先撤销:
git reset HEAD path/to/your-test-repo/
要是想标记某个已克隆的仓库永远不被主仓库跟踪,也可以用:
git update-index --assume-unchanged path/to/your-test-repo/
不过这个需要逐个处理,适合临时场景,不如.gitignore规则省心。
验证规则是否生效
改完.gitignore后,跑一下git status,看看克隆的测试仓库是不是已经从“未跟踪文件”里消失了,确认没问题就不用再担心误提交了。
内容的提问来源于stack exchange,提问作者dave_the_nerd
相关产品推荐
相关产品推荐

