Git schließt Datei für einen Zweig aus

Ich möchte bestimmte Dateien in einem Zweig ignorieren, ohne auf ein verfolgtes @ angewiesen zu sei.gitignore -Datei, die beim Zusammenführen mit anderen Zweigen überschrieben wird.

Ich verfolge @ gena Stack Overflow answer zusammen mitdie verlinkten Blog-Post, aber mein Repo scheint das angegebene @ nicht zu erkennexcludesfile in meinem.git/config. Die Git-Dokumentation git-config, gitignore) zeigt anscheinend nicht, wie eine Ausschlussdatei für einen bestimmten Zweig angegeben und adressiert wird.

My.git/config sieht aus wie das

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
        precomposeunicode = true
        excludesfile = +/info/exclude

[branch "myspecialbranch"]
        excludesfile = +/info/exclude_specialbranch

My.git/info/excludeie @ -Datei sieht folgendermaßen aus (standardmäßig habe ich sie nicht berührt):

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
.DS_Store

Ich habe kein.gitignore Datei in meiner "specialbranch".

Wenn ich versuche, eine Datei wie @ zu ignorierinfo.php, mein.git/info/exclude_specialbranch Datei sieht so aus:

info.php

… Aber die Datei wird nicht ignoriert.

enn ich laugit status --ignored, es werden nur die @ aufgelist.DS_Store Datei aus dem Standardexclude Datei

Allerdings, wenn ich @ hinzufüginfo.php zu meinem.git/info/exclude Datei

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
.DS_Store
info.php

it ignoriert die Datei perfekt.

Beachten Sie, dass es ohne die Zeile @ immer noch funktionieexcludesfile = +/info/exclude unter[core] im.git/config. Git scheint zu wissen, wo das systemweiteexclude ist, ohne dass ich es sagen muss.

Ich habe das Gefühl, dass.git/config erkennt die Adresse meiner benutzerdefinierten Ausschlussdatei nicht:

excludesfile = +/info/exclude_specialbranch

… Höchstwahrscheinlich wegen der Verwendung von+ um den Ort des @ zu beschreib.git Verzeichnis

Was ist die richtige Methode zum Adressieren von benutzerdefinierten Ausschlussdateien in den (neueren) Versionen von Git?

Ich verwende OSX 10.9.5 und Git Version 2.2.1.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage