为什么代码库的.gitignore 里明明把某个文件忽略掉了,但是拉取的时候依然会把该文件拉下来?

2024-02-02 19:55:14 +08:00
 UnrealEngine

上网了解下解决办法是将 git 清除本地缓存,即 git rm -r --cached 文件名,然后再提交,但是这样会把生产环境的该文件也会一并删除的吧?

有什么安全的解决办法?

2580 次点击
所在节点    程序员
15 条回复
oneisall8955
2024-02-02 19:56:44 +08:00
.gitignore 不是负责忽略提交吗?
securityCoding
2024-02-02 20:09:04 +08:00
你的版本没提交吧
geelaw
2024-02-02 20:11:15 +08:00
因为 .gitignore 的效果是让 Git 不关心文件的出现(准确理解“出现”是重点),比如 git add . 不会把当前目录下被 .gitignore 匹配的、新出现的文件加到 index 。如果文件已经被 Git 追踪,那 .gitignore 匹配上也不会有任何效果,比如 git add . 会把当前目录下被 .gitignore 匹配的、已经被 Git 追踪的、且发生了变化的文件的变化加入 index 。

我想楼主应该已经自学了 git rm 里 r 和 cached 的含义了,不再多嘴。至于“生产环境也……”“怎么安全解决”,我们不知道你对生产环境的担忧是什么,因为我们不知道你的生产环境是如何部署的。
thinkershare
2024-02-02 20:13:01 +08:00
请将问题描述清楚。
geelaw
2024-02-02 20:13:32 +08:00
@geelaw #3 应该强调的是“不关心出现”是指不关心工作目录里的出现,已经被 Git 追踪的文件(存在于 commit 里面的)当然会在 checkout 的时候放置在工作目录下,checkout 的过程和 .gitignore 没有任何关系。
dddd1919
2024-02-02 21:10:24 +08:00
1. 先把生产的配置拷贝到另一个目录
2. 本地删除 git 里的生产配置并提交
3. 更新生产代码
4. 在生产配置目录软链到实际配置文件所在位置
5. 重启服务
raykle
2024-02-02 23:01:37 +08:00
你到底是不想拉下来还是不想提交上去
fan123199
2024-02-02 23:06:30 +08:00
你知道 op 的需求,就是想 ignore 的某个文件,但是又不把这个文件从 origin 删除。这个我目前看的方法,都是用其他方式来解决。 比如, 你要一个 xxxconfig. 那么你需要新建一个 xxxconfig.template, 添加 xxxconfig ,然后都写一个 init 脚本,mv xxxconfig.template xxx.config 。clone 的时候初始化一下
dontLookAvatar
2024-02-02 23:18:33 +08:00
.gitignore 只忽略未提交前的文件, 但已提交过的还是会存在. 而且, gitignore 影响不了拉取吧
devliu1
2024-02-02 23:24:21 +08:00
gitignore 只是前端验证,已经提交过的仍然存在。
mxT52CRuqR6o5
2024-02-03 03:18:40 +08:00
用 git gui 工具,手动选择提交范围
keakon
2024-02-03 10:50:44 +08:00
git add -f 是可以强制添加被忽略的文件的
wanguorui123
2024-02-03 11:28:54 +08:00
拉取下来删除再提交就对了
iseki
2024-02-03 15:53:13 +08:00
你们的生产环境部署,难道是直接 git pull 吗?这个稍微粗暴了一点,改成通过 CD 去拷贝文件吧
dongzhuo777
2024-02-04 09:40:01 +08:00
因为 在加.gitignore 之前 就有人把它 push 上去了。
你要做的,先拉下来 然后做一次删除的 commit ,然后再把它 push 上去

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1013746

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX