news 2026/4/25 23:06:52

学习笔记:.gitignore 实战 —— 拦住 .env 与本机配置别进远程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习笔记:.gitignore 实战 —— 拦住 .env 与本机配置别进远程

Git 到底跟踪谁?

做智慧衣橱这个仓库的时候,我慢慢分清了:什么该进版本库、什么只该留在自己电脑上

.envlocal.properties这类文件要是误传上去,轻则被路径坑队友,重则有密钥进远程历史。这篇是边做边查、踩过坑后整理的备忘,也写给以后回头看。

Git 仓库初始化

此处仅列出代码,不做赘述。

# 在工程根目录执行 git init git add . git commit -m "chore: initial commit" # 首次关联远程并推送(按需) git remote add origin <仓库地址> git branch -M main git push -u origin main
# 已有远程时:克隆 git clone <仓库地址>

1. 一开始没想清楚的地方

类型常见文件为什么不该随便提交
环境变量.env、各种.env.xxx里往往是数据库、API 密钥,一旦进远程,即使删文件历史里还可能留着
本机专用Android 的local.properties全是我这台机器的路径、SDK 位置,别人机器不一样,传上去也没意义
可再生成的.venv/之类又胖又没版本价值,拉代码的人自己建环境即可

记忆:仓库里尽量只放「不含真密码」的样例(比如.env.example),真值在本地自己配,或交给 CI/部署环境去注入。


2..gitignore要怎么写

根目录的.gitignore是「第一道门」。我在本仓库里是这样理解这些写法的(路径按你项目自己改):

# 环境变量(先拦常见的) .env .env.* !.env.example # 子项目里单独有的话也写上,比如后端 backend/.env
  • .env/.env.*:先粗暴忽略,再用!.env.example把「给队友看的空壳」加回来。
  • backend/.env:我们后端在子目录,多写这一行,我就不会漏。

Android 这边老师傅都会说local.properties别进库,我项目里也记了一笔:

SmartWardrobe/local.properties

每人在 Android Studio 里生成本地一份就行,和 Git 各管各的。


3. 踩过的坑:只改 ignore 有时不够

如果某个文件已经被git add,后来我才把它写进.gitignoreGit 可能还会继续跟踪它。我学到要用git rm --cached只从索引里拿掉、本地文件还在:

git rm --cached -- .env # 或 git rm --cached -- backend/.env

然后再提交一版,把 ignore 的改动也一起交上去。我当时用的流程大概是:

git add .gitignore git commit -m "chore: stop tracking env and respect gitignore" git push

心里要有数:如果密钥真的曾经 push 出去过,光删文件不够安全,能轮换的 key 要轮换;大团队还会用git filter-repo清历史,这个我没在自己小项目上折腾,只记个概念。


4. 建议

  • 仓库里放一份.env.example,只写变量名和假占位,README 或运行说明.md里写:复制成.env再自己填。
  • 尽量不用git update-index --assume-unchanged长期「假装不跟踪」来偷懒,正规还是用.gitignore省事、也好解释给别人听。

仓库联调方式可以对照运行说明.md里关于local.properties、后端的那些说明,算是对同一套习惯的文字备份。


5. 对照:根目录的.gitignore里已经有什么

整理笔记时,根目录里已经有类似:

  • backend/.env
  • SmartWardrobe/local.properties

以后要是在别的目录也加了密钥类文件,要回来补一行——避免子路径漏掉。


6. 小实验:根目录docs/分两步测.gitignore

步骤一docs/先不写进 ignore):根下建docs/,内放两个.mdgit addcommitpush,确认远程可见——文档能进库

步骤二(根.gitignore增加docs/):再新建或修改.mdgit status/git add未跟踪文件进不了暂存区;步骤一已提交的两个仍在索引里、会被继续跟踪——若要停跟踪,用第 3 节git rm --cached,不能只靠 ignore。

分两步可对照:「能入库」与「整目录规则生效后,新文件被拦、旧已跟踪需另解绑」。


小结

  • 先想清:秘密和本机路径,默认不进远程。
  • .gitignore+ 必要时git rm --cached,是重复用的组合。
  • 命令和习惯以本机、Git 2.x 为准,换路径别照抄到懵。

—— 项目开发过程中的个人学习记录,不当作唯一权威说明;具体以当前分支上的.gitignore和团队规范为准。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/25 23:06:51

STM32学习江协科技(持续更新)

一、介绍二、新建工程2.1添加文件新建工程需要Start文件中&#xff08;一共六个&#xff09;&#xff1a;启动文件地址&#xff1a;C:\Users\亲爱的玩家\Desktop\STM32F10x_StdPeriph_Lib_V3.5.0其他描述文件地址&#xff1a;C:\Users\亲爱的玩家\Desktop\STM32F10x_StdPeriph_…

作者头像 李华
网站建设 2026/4/25 23:06:46

网络原理 网络编程

一.网络初识链接: https://pan.baidu.com/s/1WspOI-oXB-WwE03z3BMU7Q 提取码: tyke二.网络编程1.网络编程基础⽹络资源&#xff1a;就是在⽹络中可以获取的各种数据资源。⽽所有的⽹络资源&#xff0c;都是通过⽹络编程来进⾏数据传输的。网络编程&#xff1a;指⽹络上的主机通…

作者头像 李华
网站建设 2026/4/25 23:03:05

儿童怎么掏耳朵?怎么给小孩掏耳屎?儿童掏耳朵神器推荐2026

儿童耳道娇嫩狭窄&#xff0c;鼓膜厚度仅为成人的一半左右。用传统棉签或金属挖耳勺给孩子掏耳朵&#xff0c;不仅容易划伤外耳道皮肤&#xff0c;更可能把耳垢推向深处形成栓塞&#xff0c;甚至戳伤鼓膜引发感染。面对这样的困境&#xff0c;可视掏耳勺通过微型摄像头将耳道内…

作者头像 李华
网站建设 2026/4/25 23:02:51

航海小知识 | AIS是什么?每艘船自带的“身份证+广播器” | VDES技术

嘿&#xff0c;我是小蓝。「航海小知识」是一个帮你把航海专业术语翻译成人话的轻科普栏目。3分钟搞懂一个航海小知识。今天是第2期&#xff0c;聊聊每艘船都有的“电子身份证”——AIS。 01什么是AIS&#xff1f; AIS&#xff0c;全称Automatic Identification System&#xf…

作者头像 李华
网站建设 2026/4/25 22:59:20

GetQzonehistory:一键永久保存QQ空间说说的终极免费方案

GetQzonehistory&#xff1a;一键永久保存QQ空间说说的终极免费方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾担心QQ空间里那些珍贵的青春记忆会随着时间流逝而消失&…

作者头像 李华