惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

小众软件
小众软件
Security Archives - TechRepublic
Security Archives - TechRepublic
Security Latest
Security Latest
K
Kaspersky official blog
P
Palo Alto Networks Blog
T
Threat Research - Cisco Blogs
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
A
Arctic Wolf
NISL@THU
NISL@THU
GbyAI
GbyAI
腾讯CDC
罗磊的独立博客
Simon Willison's Weblog
Simon Willison's Weblog
Scott Helme
Scott Helme
S
SegmentFault 最新的问题
Cyberwarzone
Cyberwarzone
Jina AI
Jina AI
S
Schneier on Security
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
博客园 - 【当耐特】
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Spread Privacy
Spread Privacy
C
CXSECURITY Database RSS Feed - CXSecurity.com
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Register - Security
The Register - Security
C
Cybersecurity and Infrastructure Security Agency CISA
L
Lohrmann on Cybersecurity
V
Vulnerabilities – Threatpost
G
GRAHAM CLULEY
P
Proofpoint News Feed
Cisco Talos Blog
Cisco Talos Blog
博客园_首页
雷峰网
雷峰网
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V2EX - 技术
V2EX - 技术
O
OpenAI News
博客园 - 司徒正美
S
Security @ Cisco Blogs
Last Week in AI
Last Week in AI
M
MIT News - Artificial intelligence
博客园 - 叶小钗
Vercel News
Vercel News
AI
AI
博客园 - 聂微东
Webroot Blog
Webroot Blog
J
Java Code Geeks

git

请教一个诡异的 git 问题 - V2EX 有一个 git 仓库合并问题,不知道怎么办才好 分析一个技巧让同事不知道我使用了 ai : git 忽略本地改动文件,实现不提交 Rebased, 一个 git 客户端 发现一个邪修快速清理 Git 项目里面空文件夹的方法🤡 不知道有没有什么其他标准做法. - V2EX zig 写的 100kb 的 wasm 可以 http 读写任意 git 仓库 - V2EX 有人把 IDEA 的 git 客户端做出来了 问个关于 rebase 和 github pr 的奇怪的问题 - V2EX idea 同款 git 客户端求推荐 - V2EX 有没有类似 JB 家的 Git 管理工具 - V2EX 大家自己的代码都是放在哪儿 - V2EX 分享一个在 Linux 上编译静态 Git 二进制的项目 - V2EX 上亿的 git 仓库如何做冷热存储分离呢 - V2EX 发现了一个极度臃肿的项目 - V2EX 有什么支持直接连接远程主机 git 仓库的 GUI 工具吗 - V2EX KFCode 官网上线,做好用、靠谱、有趣的 Git 托管平台 - V2EX git 工作流,大家现在用的什么样的? - V2EX 我宣布,最好的 git 客户端是腾讯家的 ugit - V2EX Fork 付费版有什么不同? - V2EX 一位高级工程师的 GIT 需要熟悉到什么程度? - V2EX 已经 push 到远程仓库的提交,如何修改某个用户的所有提交的邮箱啊 - V2EX [求助下] 关于代码同步问题 - V2EX 一直不理解 Windows 下 git 的这个逻辑,我自己 clone 的仓库还不能删了? rm -force 也不行 - V2EX 分享一个 Git 存储库治理利器 - hot - V2EX 代码有没有必要备份到多个远程仓库?比如 github 和 codeup。有必要的话最好怎么备份? - V2EX 请教 git 里怎么删除记录 - V2EX git 中如何将子分支的多个提交作为一个提交合并到主分支? - V2EX git 切换分支问题 - V2EX git 各种命令执行很慢是什么原因导致的? - V2EX 有没有大佬指导一下 git 问题 - V2EX git remotes 分支克隆 - V2EX 两处修改需要分开提交吗? - V2EX 问个 Git 基操:怎么样复制一个文件,能保持历史记录? - V2EX Linux 的 Ubuntu 系统有类似 Sourcetree 或者 fork 这种 git 图形化操作的客户端工具吗 - V2EX 关于刚刚 git 的问题描述的不清楚,不能编辑主题了,重新发下问题: git 如何对比服务器上最新的代码和本地的区别? git diff 对比和我预想不一样 - V2EX git 新手求教: git 如何对比服务器上最新的代码和本地的区别?不是本地远端和本地 working。 svn 可以使用 show log,直接对比,调用 beyond compare 很方便。 - V2EX 对上游提 pr,上游的管理员觉得 pr 里面的功能他不需要或者不满意 - V2EX gitee fork 时继承推送规则是否合理? - V2EX 请教各位关于 Git 合并的问题 - V2EX 请教大家一个测试环境代码合并的问题 - V2EX 推送远程仓库导致本地提交记录消失,如何找回 - V2EX 给上游 pr,自己应该先 pr 到自己的 main 分支吗? - V2EX 请教一个开发流程中 GIT 解决冲突的问题 - V2EX 求教:在 fork 的仓库上添加不太可能被 upstream 接受的修改,是不是应该在新开的 branch 上开发? - V2EX 有哪个 git 的 gui 软件。可以像 idea 的 git 管理那样查看文件历史和代码冲突?现在换到了 cursor,但是这边的代码管理个人用的太不习惯了。 - V2EX git clean 还能找回吗 - V2EX 求助 git 自动 merge 丢代码 - V2EX 码云代码自动同步到 github - V2EX 请教大家这样的项目应该要怎么做 git 管理 - V2EX 从本地提交代码到 gitlab 后, diff 异常问题,求大佬解惑 - V2EX 在 Git 中,已知某一个分支的某个 Commit 引入了一个 bug,如何快速确定这个 bug 是经过哪些分支流转到 master 分支的? git rebase 那么重要么??? 如何在 git 提交前将生产版本和开发版本的配置进行区分 开源了个新的版本控制系统 HugeSCM,请 V 友们指导 Git Permission denied 问题求助
很奇怪的一个现象,有没人知道是怎么回事,所有 LLM 都说 100%不会出现 - V2EX
drymonfidelia · 2025-12-10 · via git

这是一个创建于 187 天前的主题,其中的信息可能已经有所发展或是发生改变。

  1. 我的项目早期 .gitignore 里面没有 .DS_Store 这条规则,导致我的 GitLab 仓库里面提交上去了大量 .DS_Store
  2. 我在 .gitignore加入了排除 .DS_Store 这条规则
  3. 几个月后我发现我懒得给每个项目都加这条规则,写了个脚本,监控硬盘上我会用到的所有目录里只要出现文件名为 .DS_Store 的文件就立即删除,此时从硬盘上删除了所有 .DS_Store 但并没有删除 git 仓库里的。所以这条规则就不必要了,我想要所有东西都尽可能简化,所以我同时把这条规则从 .gitignore 删掉了
  4. git add . && git commit 后,git 还是无法检测到我删除了的.DS_Store,不管怎么扫描 git 都识别不到删除.DS_Store的变更。我确认本地硬盘已经没有.DS_Store了,但是 GitLab 上最新 commit 里还存在大量的.DS_Store。并且我确认 HEAD 是同一个。
  5. 我试了 GPT 、Gemini 、Grok 给的所有命令,包括 git add -u / git read-tree HEAD 等一堆命令,都无法识别到任何变更
geelaw

1

geelaw      2025 年 12 月 10 日 via iPhone

欢迎来到 psychic debugging session 。

第一个问题:你试过找到一个仓库里有的 .DS_Store ,然后在那个目录下 git rm -f ./.DS_Store 再 git commit 再 git push 吗?

第二个问题:你试过关掉 Finder ,再删除 .DS_Store ,再 git add . 再 git commit 再 git push 吗?

第三个问题:想没想过给出程序的输出会更容易调试问题呢?

hosiet

2

hosiet      2025 年 12 月 10 日 via Android

首先,建议提供一个最小可复现样本。如果有大家都能看的例子仓库,那问题就容易解决了。

其次,你的 git add 和 git rm 命令有试过加 -f 参数(--force )吗?

SingeeKing

3

SingeeKing      2025 年 12 月 10 日

首先你的需求其实可以通过全局 gitignore 实现,这样就不需要每个项目写了(当然也不用搞个脚本在后台删)

对于已经添加进入 git 仓库的 .DS_Store ,`git add .` 是不会删除它们的,需要明确的 `git rm` 才行

gscsnm

5

gscsnm      2025 年 12 月 10 日

git 版本低于 2 ?

DualVectorFoil

6

DualVectorFoil      2025 年 12 月 10 日

我记得我没配置过,下好 git 直接自动生成 ~/.gitignore_global 里面有 .DS_Store 条目了

drymonfidelia

7

drymonfidelia      2025 年 12 月 10 日

@gscsnm
@SingeeKing 我知道应该用 git rm 来删,我想知道的问题是为什么我已经从 gitignore 删除了规则,也重新 read-tree 了,git 还是扫描不到更改,要用什么方法才能让 git 彻底重新扫描整个仓库

drymonfidelia

8

drymonfidelia      2025 年 12 月 10 日

@hosiet 我建了一个空的 git 仓库确实是复现不了,不知道要在什么条件下才能触发,现在这个仓库太大了发不上来

Yuunie

9

Yuunie      2025 年 12 月 10 日

又有大小写,又有点,这文件是容易出问题

hosiet

10

hosiet      2025 年 12 月 11 日 via Android

已存在的 gitignore 只能处理(现实世界中)未来发生的修改,已经做过的提交是影响不了的。

所以你要做的是类似 git rm -f /path/to/.DS_Store 这样。哪怕这个文件夹不存在于硬盘上也没关系,路径写对了就能生效。

iamnotcodinggod

11

iamnotcodinggod      2025 年 12 月 11 日

find . -name ".DS_Store" -print0 | xargs -0 git rm --cached
git commit -m "Remove .DS_Store from repository history"

geelaw

13

geelaw      2025 年 12 月 11 日

@SingeeKing #3 我解读的他的意思是:删除了 .DS_Store 文件之后 git add . 还是无法把删除的事实记录到 staged 。

#1 的第二个问题已经提示了可能他删除 .DS_Store 和 Finder 重建 .DS_Store 和 git add . 的扫描之间有竞态条件,但是他似乎比较喜欢和大家玩 psychic debugging 游戏。

另外,无论 .gitignore 是否忽略 .DS_Store ,用 git add . 都是可以发现在 staged/index 里的 .DS_Store 文件已经从 working tree 删除的情况的。

hosiet

14

hosiet      2025 年 12 月 11 日 via Android

从没用过 mac 。macOS 有随时随地缺了就实时创建 .DS_Store 的特性吗?如果是这导致的,不如把仓库挪到 Linux 上先处理看看是否有解决,处理完再挪回来。

不过我还是那句话,没有可复现实例或者可复现操作流程的话,大家在论坛里帮你 debug 永远是低效甚至无效的。

Dynesshely

15

Dynesshely      2025 年 12 月 11 日

@drymonfidelia 额,3 楼和 10 楼已经说得很清楚了
.gitignore 的更改并不会对已经 commit 的产生影响,它只会影响现有文件的扫描
换句话说,你移除 .gitignore 中的 .DS_Store 项目,git 只会把新增的 .DS_Store 文件继续扫描变更并允许你直接 track ,并不会把已经提交的 .DS_Store 文件删除
除非,你在不删除 .DS_Store 文件之前把 .gitignore 中 .DS_Store 条目移除,再删除已经提交过的 .DS_Store 文件,才可能允许你直接扫描到被删除的已经提交的文件
另外,你还是没回答 13 楼 @geelaw 的问题,你是否仍然在该项目中打开了 Finder ?
不断产生新的 .DS_Store 那么你也没办法删干净所有 .DS_Store 文件,不论是磁盘上还是 commit log 中

drymonfidelia

16

drymonfidelia      2025 年 12 月 12 日

@geelaw 就是在关掉 Finder ,确认实际目录是没有.DS_Store 的情况下 git 扫描不到.DS_Store 被删除了。我新建了一个空 repo ,尝试了很久也没复现出这种情况,不知道需要什么触发条件。

drymonfidelia

17

drymonfidelia      2025 年 12 月 12 日

@Dynesshely 我没有打开过 Finder ,你说的就是我的预期行为,但是实际上这个项目表现就是不正常,git ls-files 显示没有.DS_Store ,.gitignore 中不追踪 .DS_Store 的规则已经移除,但 GitLab 同 commit 下却有 .DS_Store 。在新建项目中无法复现