强制git将dotfiles添加到存储库

Ser*_*lev 29 git hidden file

如何在git repo中添加以dot(隐藏文件)开头的文件?Git似乎总是忽略那些.

当我输入时git add .,GIT_DIR会添加dotfiles in ,但不会添加子目录.另一方面,git add subdir/.dotfile不会起作用.

我想git add -f,并把!.*GIT_DIR/.git/info/exclude.没运气.

Chr*_*sen 30

git add .并且git add dir/.dot做工精细,我与缦1.6.6.1和1.7.0版本的Git,我有得心应手现在.

% git --version
git version 1.6.6.1
% git ls-files -o
.baz/baz
.foo
bar/.bar
quuux/quuux
quux
% git add .
% git ls-files -o
% git ls-files 
.baz/baz
.foo
bar/.bar
quuux/quuux
quux
Run Code Online (Sandbox Code Playgroud)

你用的是什么版本的Git?您的子目标实际上是子模块(它们是独立管理的)吗?

默认情况下不排除"点文件",但是系统,存储库或工作树上的某些配置可能会以这种方式设置它们.如果他们出现在git ls-files --exclude-standard -oi那时他们被忽略了,"!.*"是'unignore'他们的正确方法.但为了有效,这种模式必须在正确的位置.忽略按此顺序处理:

  • 然后是.gitignore的直接包含目录
  • 然后,父目录的.gitignore(每个父项,直到存储库根目录)
  • $ GIT_DIR/info/exclude,然后
  • 报告的文件git config core.excludesfile(可以由...设置)
    • $ GIT_DIR/config,
    • $ HOME/.gitconfig,或
    • 系统配置文件(尝试GIT_EDITOR=echo git config --system --edit获取其路径名)).

当路径名与一个文件中的模式匹配时,不会查询后续文件.每个文件中的最后一个匹配"获胜".在模式$ GIT_DIR /信息/排除不能覆盖在图案的.gitignore文件.因此,如果文件被忽略(每个git ls-files --exclude-standard -oi)并且如果$ GIT_DIR/info/exclude中的 "!.*" 无效,则检查所有适用.gitignore文件的罪魁祸首.


Nor*_*sey 15

您可以通过路径名专门添加它们,例如,

git add */.*
Run Code Online (Sandbox Code Playgroud)

要么

find . -name '.[a-z]*' -exec git add '{}' ';'
Run Code Online (Sandbox Code Playgroud)

(小心使用它是很好的,-name因为你不一定要用它的.条目来获取每个目录.)

但到目前为止,最简单的方法是使用git gui.只需单击文件即可.