全球Git无视

Mil*_*uzz 795 git global gitignore

我想设置Git全局忽略某些文件.

我已经.gitignore在我的用户根目录(/Users/me/)中添加了一个文件,并在其中添加了以下行:

*.tmproj
Run Code Online (Sandbox Code Playgroud)

但它并没有忽略这种类型的文件,任何想法我做错了什么?

CB *_*ley 1344

您需要设置全局core.excludesfile配置文件以指向此全局忽略文件.

例如

*nix或Windows git bash:

git config --global core.excludesfile '~/.gitignore'
Run Code Online (Sandbox Code Playgroud)

Windows cmd:

git config --global core.excludesfile "%USERPROFILE%\.gitignore"
Run Code Online (Sandbox Code Playgroud)

对于Windows,它设置为位置C:/ users/{myusername}/.gitignore.上面的命令只会设置git将使用的忽略文件的位置.该文件仍然必须在该位置手动创建并填充忽略列表.(来自muruge的评论)

您可以在https://help.github.com/articles/ignoring-files/#create-a-global-gitignore上阅读有关该命令的信息.

  • 无法使用%USERPROFILE%变量.我不得不在windows中使用git config --global core.excludesfile'〜/ .gitignore'将其设置为位置C:/ users/{myusername}/.gitignore.此外,上面的命令只会设置git将使用的忽略文件的位置.该文件仍必须在该位置手动创建,并使用忽略列表填充. (18认同)
  • 最新版本的官方Git Windows工具包使用*nix语法; 如果此行不起作用,请尝试使用*nix. (9认同)
  • 我无法使用`%USERPROFILE%`变量来实现此功能.我必须使用*nix目录分隔符输入文件的完整路径.例如core.excludesfile C:/Users/User/.gitignore (8认同)
  • 请注意,`git` 已经为此文件使用了**默认位置**。这样做就是*覆盖它*。我建议只使用默认值。请参阅下面的答案:/sf/answers/1602019751/ (8认同)
  • 只要它不在你的`HEAD`或你的索引中,它就不会对文件是否被跟踪产生任何影响.如果你将`git status`,`git config core.excludesfile`的输出添加到你的问题中可能会有所帮助. (2认同)
  • 我可以在`〜/ .gitignore`内的行开头使用`#`在全局忽略文件中添加注释吗? (2认同)
  • @Dror 是的,您可以使用 `#` 进行评论——请参阅 https://help.github.com/articles/ignoring-files (2认同)
  • 引号实际上不是必需的,你可以简单地去`git config --global core.excludesfile~/.gitignore`.至少在Git 1.9.4上. (2认同)

小智 284

在重新配置全局排除文件之前,您可能希望使用以下命令检查当前配置的内容:

git config --get core.excludesfile
Run Code Online (Sandbox Code Playgroud)

就我而言,当我运行它时,我看到我的全局排除文件已配置为

~/.gitignore_global
那里已经列出了一些东西.因此,在给定问题的情况下,首先检查现有的排除文件并向其添加新的文件掩码可能是有意义的.

  • 这很棒.像往常一样设置全局gitignore文件; 每行一个条目. (2认同)

Ste*_*sen 204

虽然其他答案是正确的,但他们正在设置全局配置值,而全局git ignore文件有一个默认的git位置:

*nix中:

~/.config/git/ignore
Run Code Online (Sandbox Code Playgroud)

视窗:

%USERPROFILE%\git\ignore
Run Code Online (Sandbox Code Playgroud)

您可能需要创建git目录和ignore文件,但是您可以将全局忽略放入该文件中,就是这样!

资源

放置模式的文件取决于模式的使用方式.

...

  • 用户希望Git在所有情况下忽略的模式(例如,由用户选择的编辑器生成的备份或临时文件)通常会进入core.excludesFile用户指定的文件中~/.gitconfig.其默认值为$ XDG_CONFIG_HOME/git/ignore.如果$ XDG_CONFIG_HOME未设置或为空,则使用$ HOME/.config/git/ignore.

  • 在Windows上看起来路径也是`〜/ .config/git/ignore`. (6认同)
  • 在 macOS 上,默认情况下此功能不起作用。正如 [git 文档](https://git-scm.com/docs/gitignore) 所述: `$XDG_CONFIG_HOME/git/ignore, $GIT_DIR/info/exclude, .gitignore` 被解析,但 `$XDG_CONFIG_HOME` 被解析macOS 上默认未设置。因此,如果 `git config --get core.excludesfile` 不输出它不起作用的文件夹,您必须手动将其设置为 `git config --global core.excludesfile ~/.config/git/ignore`或者实际上任何其他对您来说方便的位置。 (6认同)
  • 这肯定是最好的答案,有什么办法可以覆盖已接受的答案吗?如果他们遵循其他答案,很多人最终会让他们的生活变得比他们需要的更加复杂...... (5认同)
  • 这很棒; 我不知道这一点...但这不是一个生成的文件吗?更新/重新安装时可以覆盖吗? (3认同)
  • 我同意这应该是公认的答案,但是我没有在 -t̶h̶e̶̶d̶o̶c̶u̶m̶e̶n̶t̶a̶t̶i̶o̶n̶ 帮助文章(https://help.github.com/articles/ignoring-files/) (2认同)

Pho*_*era 32

从头开始创建全局gitignore:

$ cd ~
$ touch .gitignore_global
$ git config --global core.excludesfile ~/.gitignore_global
Run Code Online (Sandbox Code Playgroud)
  1. 第一行将目录更改为 C:/Users/User
  2. 之后,您创建一个带.gitignore_global扩展名的空文件
  3. 最后将全局忽略设置为该文件.
  4. 然后你应该用某种记事本打开它并添加所需的忽略规则.


Pre*_*ann 28

  1. 在您的主目录中创建一个 .gitignore 文件
touch ~/.gitignore
Run Code Online (Sandbox Code Playgroud)
  1. 向其中添加文件/文件夹

例子

# Files
*.gz
*.tmproj
*.7z

# Folders
.vscode/
build/

# If folders don't work, you can still do this
.vscode/*
build/*
Run Code Online (Sandbox Code Playgroud)
  1. 检查一个 git 是否已经有一个全局的 gitignore
git config --get core.excludesfile
Run Code Online (Sandbox Code Playgroud)
  1. 告诉 git 文件在哪里
git config --global core.excludesfile '~/.gitignore'
Run Code Online (Sandbox Code Playgroud)

瞧!!

  • 看来文件的名称并不重要,我发现 Kent. C Dodds 将此文件命名为“.gitignore_global”,这不是更好的选择,消除了与真正的 .gitignore 发生冲突的可能性吗? (3认同)

Pur*_*lex 16

如果你使用 Unix 系统,你可以用两条命令解决你的问题。其中第一个初始化配置,第二个使用要忽略的文件更改文件。

$ git config --global core.excludesfile ~/.gitignore
$ echo '.idea' >> ~/.gitignore
Run Code Online (Sandbox Code Playgroud)


LaG*_*ere 15

这里开始.

如果您在名为.gitignore的repo中创建一个文件,git将在查看要提交的文件时使用其规则.请注意,在将规则添加到此文件以忽略它之前,git不会忽略已跟踪的文件.在这种情况下,必须取消跟踪文件,通常使用:

git rm --cached filename
Run Code Online (Sandbox Code Playgroud)

是你的情况吗?


小智 6

记住,运行命令

git config --global core.excludesfile '~/.gitignore'
Run Code Online (Sandbox Code Playgroud)

只会设置全局文件,但不会创建它。对于Windows,请检查您的Users目录中的.gitconfig文件,然后将其编辑为您的首选项。以我为例:

[core]
  excludesfile = c:/Users/myuser/Dropbox/Apps/Git/.gitignore
Run Code Online (Sandbox Code Playgroud)


Sri*_*ran 5

我可以通过在我的文件中.tmproj包含.tmproj或 来忽略文件。 *.tmproj/users/me/.gitignore-global

请注意,文件名.gitignore-global不是.gitignore. 它不能通过包含.tmproj或包含在目录中*.tmproj调用的文件中来工作。.gitignore/users/me

  • 只要它与您的 core.excludesfile 配置匹配,您的全局忽略文件的名称并不重要。 (6认同)