
.gitignore 里面没有 .DS_Store 这条规则,导致我的 GitLab 仓库里面提交上去了大量 .DS_Store.gitignore加入了排除 .DS_Store 这条规则.DS_Store 的文件就立即删除,此时从硬盘上删除了所有 .DS_Store 但并没有删除 git 仓库里的。所以这条规则就不必要了,我想要所有东西都尽可能简化,所以我同时把这条规则从 .gitignore 删掉了git add . && git commit 后,git 还是无法检测到我删除了的.DS_Store,不管怎么扫描 git 都识别不到删除.DS_Store的变更。我确认本地硬盘已经没有.DS_Store了,但是 GitLab 上最新 commit 里还存在大量的.DS_Store。并且我确认 HEAD 是同一个。git add -u / git read-tree HEAD 等一堆命令,都无法识别到任何变更 1 geelaw 23 分钟前 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 吗? 第三个问题:想没想过给出程序的输出会更容易调试问题呢? |
2 hosiet 23 分钟前 via Android 首先,建议提供一个最小可复现样本。如果有大家都能看的例子仓库,那问题就容易解决了。 其次,你的 git add 和 git rm 命令有试过加 -f 参数(--force )吗? |