グローバルGit無視


841

特定のファイルをグローバルに無視するようにGitを設定したい。

私が追加されました.gitignore(私のホームディレクトリにファイルを/Users/me/)、私はそれに次の行を追加しました:

*.tmproj

しかし、それはこのタイプのファイルを無視しているのではなく、私が何を間違っているのでしょうか?


7
GitHubの無視の提案を確認することもできます-help.github.com/articles/ignoring-files ; 一般的な無視パターンのリポジトリがあります
drzaus 2014年

6
個々のプロジェクト内で.gitignoreを使用することも検討してください。それ以外の場合、あなた(または他の誰か)が新しいシステムでプロジェクトのクローンを作成する場合は、毎回グローバルexcludesfileと構成を再作成する必要もあります。
Stan Kurdziel 2014年

25
プロジェクトが作成する無視できるファイルはプロジェクトの.gitignoreファイルになければならず、マシン上のものが作成する無視できるファイルはグローバルな.gitignoreに入れる必要があります(エディター/ IDE一時ファイルなど)。
Pylinux 2016

2
Python仮想環境ディレクトリは、私のグローバルまたはローカルのexcludesファイルのエントリの一般的な使用例です。
シチュー

10
@Pylinux実際には、git-scmごとに、個人のIDEおよびワークフロー固有のものは.git/info/exclude、リポジトリ内の追跡されていないファイルに入れることができるため、必ずしもグローバルファイルに入れる必要はありません。また、デフォルトの自動グローバルgitignoreファイルは$HOME/.config/git/ignoreです。
Acumenus

回答:


1422

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の場合は、場所に設定しますC:\Users\{myusername}\.gitignore。次のようにして、構成値が正しいことを確認できます。

git config --global core.excludesfile

結果は、ユーザープロファイルのへの展開されたパスになります.gitignore。値に展開されていない%USERPROFILE%文字列が含まれていないことを確認してください。

重要:上記のコマンドは、gitが使用する無視ファイルの場所のみを設定します。ファイルはその場所に手動で作成し、無視リストを入力する必要があります。(murugeのコメントから)

コマンドについては、https://help.github.com/articles/ignoring-files/#create-a-global-gitignoreを参照してください。


2
それがあなたのHEADまたはインデックスにない限り、ファイルが一度追跡されたかどうかに関係なく、違いはありません。あなたはの出力を追加する場合には役立つかもしれないgit statusgit config core.excludesfileあなたの質問に。
CBベイリー

2
#内部の行の先頭で使用して~/.gitignore、グローバル無視ファイル内にコメントを追加できますか?
Dror 2013年

9
公式のGit Windowsツールキットの最近のバージョンでは、代わりに* nix構文を使用しています。この行が機能しない場合は、代わりに* nixを試してください。
アンディジョーンズ

9
%USERPROFILE%変数を使用してこれを機能させることができませんでした。* nixディレクトリー区切り文字を使用して、ファイルへの絶対パスを入力する必要がありました。例:core.excludesfile C:/Users/User/.gitignore
Vince

21
%USERPROFILE%変数を使用して機能させることができませんでした。Windowsでgit config --global core.excludesfile '〜/ .gitignore'を使用して、C:/ users / {myusername} /。gitignoreに設定する必要がありました。また、上記のコマンドは、gitが使用する無視ファイルの場所のみを設定します。ファイルはその場所に手動で作成し、無視リストを入力する必要があります。
14年

301

グローバル除外ファイルを再構成する前に、次のコマンドを使用して、現在の構成ファイルを確認することをお勧めします。

git config --get core.excludesfile

私の場合、実行すると、グローバル除外ファイルが次のように構成されていることがわかりました

〜/ .gitignore_global
そこにはすでにいくつかのものがリストされていました。したがって、与えられた質問の場合、最初に既存の除外ファイルを確認し、それに新しいファイルマスクを追加することは意味があるかもしれません。


2
これはうまくいきます。通常のようにグローバルgitignoreファイルをセットアップします。1行に1つのエントリ。
Maarten Hartman

237

他の答えは正しいですが、グローバル構成値を設定していますが、グローバルgit ignoreファイルにはデフォルトの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が使用されます。

1
これは素晴らしい; 私はこれについて知りませんでした...しかし、これは生成されたファイルではありませんか?アップデート/再インストール時に上書きできますか?
danielsdesk 2015

1
特定のgitコマンドを実行することでファイルが作成/変更されたと思います。各ユーザーのディレクトリにある設定ファイルなので、上書きしてはいけないと思います。
Steve Jorgensen、2016年

1
これは受け入れられる答えであることに同意しますが、ヘルプ記事(help.github.com/articles/ignoring-files)の-t̶h̶e̶̶d̶o̶c̶uhelpm̶e̶n̶t̶a̶t̶i̶o̶n̶では見つかりませんでした
AVProgrammer

1
@AVProgrammerソースドキュメントの構成方法の変更を反映するために、回答を編集しました。
Steve Jorgensen

7
Windowsではパスも同様に見え~/.config/git/ignoreます。
1

40

グローバルgitignoreを最初から作成するには:

$ cd ~
$ touch .gitignore_global
$ git config --global core.excludesfile ~/.gitignore_global
  1. 最初の行はディレクトリをに変更します C:/Users/User
  2. その後、.gitignore_global拡張子付きの空のファイルを作成します
  3. そして最後に、そのファイルにグローバル無視を設定します。
  4. 次に、それをある種のメモ帳で開き、必要な無視ルールを追加します。

18

ここから。

リポジトリに.gitignoreという名前のファイルを作成すると、gitはコミットするファイルを調べるときにそのルールを使用します。gitは、このファイルにルールを追加する前にすでに追跡されていたファイルを無視しないことに注意してください。このような場合、ファイルは通常は次のようにして追跡を解除する必要があります。

git rm --cached filename

それはあなたのケースですか?


私はグローバルに無視しようとしています、それは起こっていません!!
軽度のファズ2011

Linuxの@MildFuzzは、core.excludesfileファイルとファイルの解釈が異なるよう.gitignoreです。ディレクトリ全体を無視したい場合は、.vscode/代わりに次のようにディレクトリの名前を入力します.vscode/*
Aspiring Dev

11

Unixシステムを使用している場合は、2つのコマンドで問題を解決できます。1つ目はconfigsを初期化し、2つ目は無視するファイルでファイルを変更します。

$ git config --global core.excludesfile ~/.gitignore
$ echo '.idea' >> ~/.gitignore

10
  1. ホームディレクトリに.gitignoreファイルを作成する
touch ~/.gitignore
  1. それにファイルを追加します(フォルダーは認識されません

# these work
*.gz
*.tmproj
*.7z

# these won't as they are folders
.vscode/
build/

# but you can do this
.vscode/*
build/*
  1. gitにすでにグローバルgitignoreがあるかどうかを確認します
git config --get core.excludesfile
  1. gitにファイルの場所を伝えます
git config --global core.excludesfile '~/.gitignore'

出来上がり!


「フォルダが認識されない」-それは間違っています。フォルダは
正常に機能し

7

コマンドを実行することを覚えておいてください

git config --global core.excludesfile '~/.gitignore'

グローバルファイルを設定するだけで、作成しません。Windowsの場合は、ユーザーディレクトリで.gitconfigファイルを確認し、必要に応じて編集します。私の場合それはそのようなものです:

[core]
  excludesfile = c:/Users/myuser/Dropbox/Apps/Git/.gitignore

3

私は無視することができる午前.tmprojのいずれかを含めてファイルを.tmprojか、*.tmproj私には/users/me/.gitignore-globalファイル。

ファイル名はで.gitignore-globalないことに注意してください.gitignore。ディレクトリで呼び出されたファイルをインクルードし.tmprojたり*.tmproj、ファイルにインクルードしても機能しませんでした。.gitignore/users/me


4
core.excludesfile設定と一致する限り、グローバル無視ファイルを何と呼んでもかまいません。
CBベイリー

ああ!良い点@CharlesBailey。しかし、これは作家がチェックしたいものかもしれません。.tmprojファイルが無視されない理由は、ユーザーのexcludesfileがでないためである可能性があります.gitignore
スリサンカラン、2011

彼はユーザーが実現するのに十分賢いだろうと思ったと思います。
WORMSS 2014年

2

このための除外ファイルを作成する必要があります。自明であるこの要旨をチェックしてください。

かかわらず、あなたの質問に対処するには、いずれかのデインデックスに必要があるかもしれません.tmproj(あなたがインデックスにすでに追加した場合)でファイルをgit rm --cached path/to/.tmproj、かgit addcommitあなたの.gitignoreファイル。


私はこれをリポジトリごとだけでなくグローバルに実行しようとしています
マイルドファズ

ええ、それは私が要点でリンクしたものです。元の質問に少し戸惑いました。やりましたgit rm --cachedか?
ニック

ええ、それを試しました。私にはすべての推奨アドバイスに従っているようです!何が欠けていますか?
マイルドファズ2011

提案したように、私はあなたのgitステータスを追加し、質問に情報を除外します:)
Nic

2

LinuxのWindowsサブシステムでcd ~/touch .gitignore、それまでにサブシステムのルートに移動し、そこにあるグローバルgitignore構成を更新する必要がありました。

誰かのお役に立てば幸いです。


0

VSCODEを使用している場合は、この拡張機能を使用してタスクを処理できます。作業内容を保存するたびにワークスペースを監視し、vscode設定で指定したファイルとフォルダーを自動的に無視するのに役立ちます 。jsonignoreit(vscode拡張)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.