2011-09-23 12 views
41

私はファイル.gitignore_globalを作成し、これを私のgit installディレクトリに入れました。Git global ignore not working

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

無視ファイルのルールが自分のコミットに適用されません。

ファイル.gitignoreの名前を変更してプロジェクトルートに配置すると、その規則が適用されます。

ここで何が間違っていますか?

+0

@ジャロッド '〜/ .gitignore_global'は、彼が私の答えを受け入れたが、OPが意味するもので、あなたの編集はグーではありませんd – CharlesB

答えて

109

たぶん、あなたは何をする必要があります。

git config --global core.excludesfile ~/.gitignore_global 

そして、いくつかのコーヒーを持っています。

+0

申し訳ありませんが、私はそれを意味しています。私がコピーしたのは、何がうまくいっているかを目の当たりにすることでした。 – user880954

+0

コーヒーや歯には真です。 .gitignore_globalはあなたの$ HOMEにありますか? git installディレクトリにインストールしたとしますか? – CharlesB

+0

それはまだここで動作しない理由は何ですか?私はスキップしたい.7zファイルを持っています。私はこれらのルールを追加しました:https://gist.github.com/octocat/9257657;私がファイルを変更した後も、それはまだ.gitでバージョン化されています:( –

3

ファイルはホームディレクトリにある必要があります。ウィンドウでは、通常は以下を意味します。 C:\ documents and settings \ [user]。 Linux上で

それは次のとおりです。 /ホーム/ [ユーザー]

4

注:git1.7.12 (August 2012)を開始:

の値:$ HOME/.configファイルに

  • core.attributesfileデフォルト/ git/attributesと
  • core.excludesfileはデフォルトで$HOME/.config/git/ignoreになります。

あなたは$HOME/.config/git/attributesファイルを作成するのであれば、あなたもあなたcore.excludesfile設定を設定する必要はありません。

8

私はこのようにそれを定義したときことがわかった:それは動作しませんでした

git config --global core.excludesfile $HOME/.config/git/ignore 

。 $ HOME変数を使用しないように変更するには、次のようにします。

git config --global core.excludesfile ~/.config/git/ignore 

すぐに作業が開始されました。これが他の人に役立つことを願っています

はFYI:

$ git --version 
git version 1.7.10.2 (Apple Git-33) 
+0

私もこれを観察しました。私はドキュメントをスキミングしましたが、何も見つかりませんでした:.gitignore(ディレクトリごと)と.git/info/excludeに加えて、gitはこのファイルに、追跡されないファイルのパターンを探します。 "〜/"は$ HOMEの値に、 "〜user /"は指定されたユーザーのホームディレクトリに展開されます。 – rliu

46

は、私はこの上でチップだろうと思いました。グローバル無視ファイルが動作しないように見える別の理由があります。それは私が以前の答えでカバーされたとは思わないものです。それは非常に明白です - もちろん - それは見逃しがちです。

これは、は、新しいファイルを無視するということです。ファイルがすでにgitによって追跡されている場合、もちろんgitはそれを無視しません!したがって、gitignoreまたはexcludeファイルのどのパターンでも、は適用されません。

これは意味があります。どうしてgitはすでに追跡しているファイルへの変更を無視したいのですか?ファイルを無視する場合は、まずgitにそれを追跡しないように指示してから、gitはマニュアルに記載されているように無視しなければなりません。ファイルを展開する方法については、see this answerを参照してください。

これはすべて私に尋ねます。追跡されたファイルの変更を無視することは可能ですか?再び、gitは配信します。この答え。 Git: Ignore tracked filesは私たちに指令を与える:

git update-index --assume-unchanged file

最後に、ここでのgitは無視デバッグのいくつかの追加情報です。

gitignore(5) Manual Pageは教えてくれる:ユーザーはGitがすべての状況で無視したい

パターン(例えば、バックアップまたは任意のユーザーのエディタによって生成された一時ファイル)は、一般的にコアで指定されたファイルの中に入ります。ユーザーの〜/ .gitconfigファイルを除外します。デフォルト値は$ XDG_CONFIG_HOME/git/ignoreです。 $ XDG_CONFIG_HOMEが設定されていないか空でない場合は、代わりに$ HOME/.config/git/ignoreが使用されます。

これは前述の~/.gitignore_globalを置き換えたものです。

次に、これは本当に便利です.1.8.2の時点で、優れたデバッグツールが用意されています。これは、そのgitのが正常例えば、あなたのパターンを無視していることを確認するために、新しいcheck-ignoreフラグを使用する方法を示し

Git Learns to Ignore Better - New in 1.8.2

:見て

git check-ignore bin/a.dll --verbose

+1

'git update-index --assume-unchanged file'はまさに私が探していたものでした。ありがとう! – Jai

0

.gitignore(_global)が行にスペースをリードすることができ動作していない表示された理由を追跡するために別のハード。このファイルは先頭のスペースを許していません。だから、あなたのファイルの各行に空白行がなければ、それがないかどうか確認してください。わかるにはしばらく時間がかかりました。

ちょうど私の2セントを追加してください。

2

私は最初に 'git config core.excludefiles'を--globalなしで間違った値で呼び出していたため、このプロパティがローカルに保存されていたため、この問題が発生しました。ローカルプロパティが正しい値を持つグローバルなものを隠しているように見えますが、それを完全に無視しています。

0

私は最近、ミスを犯し、 git config core.excludesfile tags 次のコマンドを実行します。私はそうすることをを修正するために、これは現在のリポジトリ内のローカルファイルへのexcludesfileのパスを変更し、この設定が.git/configの下にローカル設定ファイルに書き込まれています.git/configファイルを開き、excludesfile tagsという行を削除したところ、すべて正常に戻りました。

0

私は同じ問題を抱えていました(Windowsの場合)。私は私の~/.gitconfigファイルをチェックすることになったし、私のexcludesfileに設定していることが分かっ:

excludesfile = C:\\Users\\myUserName\\Documents\\gitignore_global.txt 

それがされている必要があります:

excludesfile = C:\\Users\\myUserName\\.gitignore_global 

私はそれを変更した後、すべてはそれが必要として働いていました。

0

グローバルなgit ignoreが動作しない別の理由は、パス内の見えない文字です。

私はそれが運良くが見えるようになったクロームのアドレスバーにgit-check-ignoreから警告メッセージを貼り付けたときに、これは私の問題だったが分かった:

enter image description here

(それは上に見えませんでした)長いウサギの穴のデバッグ...)