有没有办法强制
git
添加文件,尽管有.gitignore
文件?
man git-add
:
-f, --force
Allow adding otherwise ignored files.
所以运行这个
git add --force my/ignore/file.foo
尽管 Daniel Böhmer 的工作解决方案,Ohad Schneider 在评论中提供了更好的解决方案:
如果文件通常被忽略,而您强行添加它 - 将来可能会再次被意外忽略(例如删除文件时,然后提交并重新创建文件。
你应该像这样在 .gitignore 文件中取消忽略它: Git中忽略目录的Unignore子目录
如果您忽略了目录的内容,如下所示:
/ignored_dir/* # ignore the **contents of** this dir!
然后你可以像这样取消忽略其中的文件或目录:
!/ignored_dir/special_file_to_include # Do NOT ignore this file--DO include it!
!/ignored_dir/special_dir_to_include/ # And do NOT ignore this dir--DO include it!
但是,如果您忽略了“ignored_dir”直接这样的:
/ignored_dir/ # ignore this directory **directly**
那么上述
!
规则试图取消忽略某些文件或文件夹将不起作用!所以,在这种情况下,从使用这种风格:/ignored_dir/
切换到这种风格:/ignored_dir/*
,然后添加你的 !
规则,如上所示,以取消忽略该目录中的某些内容!
实现它的另一种方法是临时编辑 gitignore 文件,添加文件然后恢复 gitignore。我觉得有点hacky
在过去的几年里,我确实记得这可以通过显式暂存一个被忽略的文件来完成 (
git add -f <file>
),但它似乎不适用于更新版本的 git。这是一个似乎适用于更高版本的 git 的新方法:
git update-index --no-assume-unchanged path-to/ignored-file.ext
git add ...
git commit ...
git push ...
git update-index --assume-unchanged path-to/ignored-file.ext