通过全局 .gitignore 覆盖存储库的 .gitignore (适用于计算机)



例如,我们有包含.gitignore内容的本地存储库:

/.env.*.local
/public/bundles/
/var/
/vendor/

和来自git config的全球.gitignore

.idea/
setup_done.lock

正如我们在我的全局.gitignore中看到的那样,我们忽略了目录.idea/,但 repo 附带了这个目录,当我在 IDE 中工作时,它会对这些文件进行更改并希望提交它们。
是否可以"硬覆盖"存储库的.gitignore而不跟踪目录中.idea/更改?

您可以这样做,假设没有添加/删除任何文件并且不存在子目录(来源(:

git update-index --assume-unchanged .idea/*

但是,请务必阅读并理解 IDEA 的文档,了解从.idea提交的内容。

无法使 Git 忽略对跟踪文件的更改。 有些人会告诉你使用--assume-unchanged--skip-worktree标志来git update-index,但这些标志并非在所有情况下都有效,不是为此目的而设计的,并且上游不支持这样做。

通常,特定编辑器的配置文件不属于版本控制,因为用户将使用不同的配置。 处理此问题的最佳方法是从版本控制中删除.idea目录,并使用静态的、与编辑器无关的配置,例如.editorconfig文件。 一旦你这样做了(例如,使用git rm --cached .idea(,你的 gitignore 将被尊重,因为 Git 将不再跟踪配置。

相关内容

最新更新