我想将Git设置为全局忽略某些文件。
我已将.gitignore
文件添加到主目录(/Users/me/
),并在其中添加了以下行:
*.tmproj
但这不是没有忽略这种类型的文件,你知道我在做什么错吗?
.git/info/exclude
回购中的未跟踪文件中,因此不必一定要放入全局文件中。另外,默认的自动全局gitignore文件是$HOME/.config/git/ignore
。
我想将Git设置为全局忽略某些文件。
我已将.gitignore
文件添加到主目录(/Users/me/
),并在其中添加了以下行:
*.tmproj
但这不是没有忽略这种类型的文件,你知道我在做什么错吗?
.git/info/exclude
回购中的未跟踪文件中,因此不必一定要放入全局文件中。另外,默认的自动全局gitignore文件是$HOME/.config/git/ignore
。
Answers:
您需要设置全局core.excludesfile
配置文件以指向此全局忽略文件。
例如
* nix或Windows git bash:
git config --global core.excludesfile '~/.gitignore'
Windows cmd:
git config --global core.excludesfile "%USERPROFILE%\.gitignore"
Windows PowerShell:
git config --global core.excludesfile "$Env:USERPROFILE\.gitignore"
对于Windows,将其设置为location C:\Users\{myusername}\.gitignore
。您可以通过执行以下操作来验证配置值是否正确:
git config --global core.excludesfile
结果应该是您的用户个人资料的扩展路径.gitignore
。确保该值不包含未扩展的%USERPROFILE%
字符串。
重要提示:上面的命令将仅设置git将使用的忽略文件的位置。该文件仍必须在该位置手动创建,并用忽略列表填充。(从muruge的评论)
您可以在https://help.github.com/articles/ignoring-files/#create-a-global-gitignore中阅读有关命令的信息
HEAD
或您的索引中,无论文件是否被跟踪都不会有任何区别。如果将的输出添加到问题中git status
,可能会有所帮助git config core.excludesfile
。
#
在行的开头使用~/.gitignore
全局忽略文件中的注释吗?
%USERPROFILE%
变量使它正常工作。我必须使用* nix目录分隔符输入文件的完整路径。例如core.excludesfile C:/Users/User/.gitignore
在重新配置全局排除文件之前,您可能需要使用以下命令检查当前配置的文件:
git config --get core.excludesfile
就我而言,当我运行它时,我看到我的全局排除文件配置为
〜/ .gitignore_global而且那里已经列出了几件事。因此,对于给定的问题,首先检查现有的排除文件,然后向其添加新的文件掩码可能是有意义的。
尽管其他答案是正确的,但它们正在设置全局配置值,而全局git忽略文件存在默认的git位置:
* nix:
~/.config/git/ignore
视窗:
%USERPROFILE%\git\ignore
您可能需要创建git
目录和ignore
文件,但随后可以将全局忽略项放到该文件中,就是这样!
放置模式的文件取决于模式的使用方式。
…
- 用户希望Git在所有情况下都忽略的模式(例如,由用户选择的编辑器生成的备份或临时文件)通常进入
core.excludesFile
用户所指定的文件中~/.gitconfig
。其默认值为$ XDG_CONFIG_HOME / git / ignore。如果$ XDG_CONFIG_HOME未设置或为空,则使用$ HOME / .config / git / ignore。
git
命令来创建/修改的。由于它是每个用户目录中的设置文件,因此我认为不应将其覆盖。
~/.config/git/ignore
。
从这里。
如果您在仓库中创建一个名为.gitignore的文件,则git在查看要提交的文件时会使用其规则。请注意,在将规则添加到该文件之前,git不会忽略该文件已被跟踪以忽略它。在这种情况下,通常必须使用以下命令取消跟踪文件:
git rm --cached filename
是你的情况吗?
core.excludesfile
文件的解释似乎与对文件的解释不同.gitignore
。如果您想忽略整个目录,只需输入目录名称,.vscode/
而不是.vscode/*
如果使用Unix系统,则可以通过两个命令解决问题。其中第一个初始化配置,第二个用一个要忽略的文件更改文件。
$ git config --global core.excludesfile ~/.gitignore
$ echo '.idea' >> ~/.gitignore
touch ~/.gitignore
例
# these work
*.gz
*.tmproj
*.7z
# these won't as they are folders
.vscode/
build/
# but you can do this
.vscode/*
build/*
git config --get core.excludesfile
git config --global core.excludesfile '~/.gitignore'
瞧!
我能忽略.tmproj
通过包括文件.tmproj
或*.tmproj
在我的/users/me/.gitignore-global
文件。
请注意,文件名.gitignore-global
不是.gitignore
。通过包含目录中的文件.tmproj
或*.tmproj
在目录中调用的文件.gitignore
中,该文件不起作用/users/me
。
core.excludesfile
配置相匹配,什么都没关系。
.tmproj
无法忽略文件的原因可能是因为用户的excludesfile
不是.gitignore
。
如果您使用的是VSCODE,则可以获取此扩展名来为您处理任务。每次保存工作时,它都会监视您的工作空间,并帮助您自动忽略在vscode设置中指定的文件和文件夹。json ignoreit(vscode扩展名)