强制添加尽管 .gitignore 文件

问题描述 投票:0回答:5

有没有办法强制

git
添加文件,尽管有
.gitignore
文件?

git gitignore
5个回答
751
投票

man git-add

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

所以运行这个

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

29
投票

尽管 Daniel Böhmer 的工作解决方案,Ohad Schneider 在评论中提供了更好的解决方案:

如果文件通常被忽略,而您强行添加它 - 将来可能会再次被意外忽略(例如删除文件时,然后提交并重新创建文件。

你应该像这样在 .gitignore 文件中取消忽略它: Git中忽略目录的Unignore子目录


15
投票

如何取消忽略 ignored folder

中的某些选定内容(文件或文件夹)

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

/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中忽略目录的Unignore子目录
  2. [我的 eRCaGuy_dotfiles 回购,带有包含这些注释和演示的示例 .gitignore 文件]:eRCaGuy_dotfiles/.gitignore

6
投票

实现它的另一种方法是临时编辑 gitignore 文件,添加文件然后恢复 gitignore。我觉得有点hacky


0
投票

在过去的几年里,我确实记得这可以通过显式暂存一个被忽略的文件来完成 (

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
© www.soinside.com 2019 - 2024. All rights reserved.