2015-09-09 4 views
12

Ich erstellte die .gitignore_global Datei und speichern Sie sie in das Verzeichnis, in dem ich .gitconfig Datei habe..gitignore_global funktioniert nicht, auch .gitconfig zeigt die .gitignore_global

Danach habe ich diesen Befehl verwendet.

git config --global core.excludefile .gitignore_global 

dann überprüft ich meine .gitconfig Datei mit dem Befehl

cat .gitconfig 

mit Es hat mich als

[user] 
     email = [email protected] 
     name = Hemant Parihar 
[gui] 
     recentrepo = C:/Users/heman/gitprojects 
     recentrepo = E:/Inspiration/developerquery 
[filter "lfs"] 
     clean = git-lfs clean %f 
     smudge = git-lfs smudge %f 
     required = true 
[core] 
     excludesfile = .gitignore_global 

Es ist mir klar zeigt in [core] Abschnitt ergeben sich zeigt, ist .gitignore file. Aber in meinem Projekt-Repository habe ich eine Datei erstellt, die ignoriert werden sollte, wenn ich den .gitignore_global konfiguriere. Aber das sollte nicht passieren. Aber wenn ich lokale .gitignore Datei zu meinem Projekt verwende, funktioniert es gut und ignoriert die Dateien, die nicht verfolgt werden sollten.

Mein Projekt-Repository-Verzeichnis ist E:/Inspiration/server/explore_california während .gitignore_global in meinem Home-Verzeichnis ist (wo .gitconfig Datei vorhanden ist.).

Ich überprüfte this link, aber ich fand nichts, das hilfreich ist.

+0

Gibt es einen besonderen Grund, lokale .gitignore-Datei nicht zu verwenden? –

+0

Ich möchte diese Regel nur meinem gesamten Repository zuweisen. Auch wenn ich lokale .gitignore-Datei verwendet, funktioniert es sehr gut. –

+0

Keine gute Idee für Teamarbeit. Sie haben lokale .gitignore, aber nicht Ihre globale. Bitte benutze es sorgfältig.Vielleicht suchen Sie nach ~/vor Ihrem .gitignore_global Datensatz in .gitconfig file: 'excludesfile = ~/.gitignore_global' –

Antwort

18

Der Weg zum globalen gitignore absolut sein muss, so dass Sie die Shell-Erweiterung hier verwenden könnten und es nur angeben, wie ~/.gitignore_global:

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

Um zu verstehen, was passiert, wenn Sie los don Wenn Sie keinen absoluten Pfad verwenden, müssen Sie verstehen, wie git configs funktioniert: Jedes Repository hat einen in .git/config. Darüber hinaus gibt es die globale ~/.gitconfig. Konfigurationswerte von beiden Orten werden zusammengeführt (wobei die lokalen Repository-Einstellungen im Konfliktfall Vorrang haben), um einen einzelnen Satz von Konfigurationseinstellungen zu erstellen. Sie können diese überprüfen, indem Sie git config -l in einem lokalen Repository ausführen.

Die Konfiguration ist also immer lokal für das aktuelle Repository. Wenn Sie also einen relativen Pfad zu einer "globalen" exclude-Datei haben, wird dieser Pfad relativ zu Ihrem Repository interpretiert.

Also mit excludesfile = .gitignore_global würde Git in Ihr lokales Repository für eine Datei gitignore_global suchen. Und es würde so gut wie das normale .gitignore und das Repository .git/info/exclude verwenden.

So könnten Sie tatsächlich eine .gitignore_global Datei in jedes Repository legen und Git würde es abholen.

Da Sie also eine globale Konfiguration wünschen, müssen Sie einen absoluten Pfad angeben.

+0

yup. Es funktioniert. aber ich möchte wissen, warum es nicht funktioniert. git config --global core.excludesfile .gitignore_global –

+0

@HemantParihar Zusätzliche Erklärung, warum ein absoluter Pfad erforderlich ist. – poke

Verwandte Themen