我想完全忽略git存储库的一部分。该目录当前在存储库中被跟踪,我想确保
我并不特别关心实际内容。
问题出现在构建期间自动生成的文件中。不幸的是,有人碰巧将它们提交到存储库,但是当它们在不同的机器上使用而不是它们的创建者时,它们会因为不同的路径等而导致构建错误,从而导致令人讨厌的合并冲突。
AFAIK,.gitignore
不能用于此目的,因为它仅适用于未跟踪的文件。
答案 0 :(得分:9)
您可以使用git rm
轻松删除和删除文件,这似乎就是您想要做的事情。如果在构建过程中自动生成文件,这似乎是您要采用的路径。
但是,如果只有一个人的机器设置正确生成这些文件,我相信存在更大的问题。但要做你想做的事,就是这样
开始忽略更改
git update-index --assume-unchanged <dir>
再次开始关怀
git update-index --no-assume-unchanged <dir>
答案 1 :(得分:5)
如果文件永远不会进入存储库,请修复问题并正确执行...
.gitignore
文件.gitignore
您永远不必再次处理这些不需要的文件,因为.gitignore
将避免这些文件的未来git add
(除非--force
d)
答案 2 :(得分:0)
上述所有答案都无法处理已分离之前 gitignoring并删除不需要的文件的分支,并且包含对这些文件进行更改的提交。这些分支机构只会坐在那里等待机会对合并或变革造成严重破坏。
实际上,除了从头开始使用.gitignore中不需要的文件从头开始重新创建所有repos之外,没有其他解决方案。 git中完全打破了非跟踪内容。
Git无法模拟用户没有表现出来的简单现实千里眼,而且只是明显地不知道什么样的做不跟踪(临时|中间件) | caches | whatever)将由一个尚未编写的框架创建,但将在未来的某个时刻纳入项目。
答案 3 :(得分:0)
您可以在.gitignore文件的开头尝试以下行:
!.gitignore
我认为这应该迫使git忽略列出的冷杉/文件。我不知道这是最好的方法,但是对我来说是可行的。 例如
!.gitignore
my_dir/
some_dir/
注意:当然,您应该git add和commit .gitignore而不是推送到原点。