不管.gitignore文件强制添加

92dk7w1h  于 2023-03-11  发布在  Git
关注(0)|答案(5)|浏览(163)

有没有办法强制git添加一个文件,而不管.gitignore文件?

uurv41yg

uurv41yg1#

参见man git-add

-f, --force
       Allow adding otherwise ignored files.

那么运行这个

git add --force my/ignore/file.foo
xwmevbvl

xwmevbvl2#

尽管丹尼尔·伯默提出了可行的解决方案,但奥哈德·施奈德在评论中提出了一个更好的解决方案:
如果文件通常被忽略,而您强制添加了它-它可能会在将来意外地再次被忽略(例如,当文件被删除时,则会进行提交并重新创建文件。
你应该在.gitignore文件中取消忽略它,如下所示:Unignore subdirectories of ignored directories in Git

amrnrhlw

amrnrhlw3#

如何取消忽略 ignored 文件夹中的某些选定内容(文件或文件夹)

如果您忽略了 * 目录的 * 内容 *,如下所示:

/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/*,然后如上所示添加您的!规则以取消忽略该目录中的某些内容!

参考文献:

1.在Git中取消忽略已忽略目录的子目录
1.[我的eRCaGuy_dotfiles repo以及包含这些注解和演示的示例.gitignore文件]:eRCaGuy_dotfiles/.gitignore

5tmbdcev

5tmbdcev4#

另一种实现方法是临时编辑gitignore文件,添加文件,然后恢复gitignore。

pw136qt2

pw136qt25#

如果被忽略的文件是由git钩子使用git update-index --assume-unchanged <file>强制执行的,那么强制执行的git add(git add -f <file>)将不起作用,这时你需要手动更新索引,如下所示:

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

相关问题