Ich verwende diese Workaround oft in der CLI, wo ich anstelle der Konfiguration meiner .gitignore
eine separate .include
-Datei erstelle, in der ich die zu inkludierenden (Teil-)Verzeichnisse definiere, unabhängig davon, ob sie von .gitignore
direkt oder rekursiv ignoriert werden.
Daher benutze ich zusätzlich
git add `cat .include`
während des Stagings vor dem Commit.
An den OP schlage ich vor, ein .include
zu verwenden, das diese Zeilen enthält:
/application/language/gr/*
HINWEIS: Die Verwendung von cat
erlaubt nicht die Verwendung von Aliassen (innerhalb von .include
) zur Spezifizierung von $HOME (oder einem anderen spezifischen Verzeichnis). Dies liegt daran, dass die Zeile homedir/app1/*
, wenn sie an git add
mit dem obigen Befehl übergeben wird, als git add 'homedir/app1/*'
erscheint und das Einklammern von Zeichen in einfachen Anführungszeichen ('') den wörtlichen Wert jedes Zeichens innerhalb der Anführungszeichen bewahrt und somit das Funktionieren von Aliassen (wie z.B. homedir) verhindert (siehe Bash Single Quotes).
Hier ist ein Beispiel einer .include
-Datei, die ich in meinem Repository hier verwende.
/home/abhirup/token.txt
/home/abhirup/.include
/home/abhirup/.vim/*
/home/abhirup/.viminfo
/home/abhirup/.bashrc
/home/abhirup/.vimrc
/home/abhirup/.condarc