如何忽略git中的文件或目录,无论是跟踪,未跟踪,还是部分提交

jpa*_*cek 4 git ignore gitignore

我想完全忽略git存储库的一部分.该目录当前在存储库中被跟踪,我想确保这一点

  • 每当有人在上游存储库中更改其内容时,即使我的副本也被更改,我也不会遇到任何合并冲突.
  • 每当我更改其内容时,我所做的任何提交都不会反映这些更改

我并不特别关心实际内容.

在构建期间自动生成的文件会出现问题.不幸的是,有人碰巧将它们提交到存储库,但是当它们在不同的机器上使用而不是它们的创建者时,它们会因为不同的路径等而导致构建错误,从而导致讨厌的合并冲突

AFAIK .gitignore不会用于此目的,因为它仅适用于未跟踪的文件.

And*_*ell 9

您可以轻松删除和删除git rm您想要执行的文件.如果在构建过程中自动生成文件,这似乎是您要采用的路径.

但是,如果只有一个人的机器设置正确生成这些文件,我相信存在更大的问题.但要做你想做的事,就是这样

开始忽略更改 git update-index --assume-unchanged <dir>

再次开始关怀 git update-index --no-assume-unchanged <dir>


Kur*_*tal 5

如果该文件永远不会进入存储库,请修复问题并正确执行...

  1. 将文件/模式添加到.gitignore文件中
  2. 从存储库中删除不需要的文件
  3. 承诺解开不需要的文件并提交.gitignore
  4. 推动变革

而且你永远不必再次处理那些不需要的文件,因为这.gitignore将避免将来git add的那些文件(除非--forced)