gitigore lädt andere gitignores

8

Ist es möglich? Das git update-index --assume-unchanged ist keine Lösung, ignorierte Dateien müssen verfolgt werden. Erstellen Sie auch Submodule.

z. B.

Katze .customgitignore (1 | 2 | 3 ...)

%Vor%

Katze .gitignore

%Vor%

Problembeschreibung für Interessierte.

Ich erstelle private Repo von Configs. Ein Zweig = eine Konfig. Zusätzliche Verzweigung als Arbeitsbereich Ich füge andere Zweige-configs mit Arbeitsbereich je nach Anforderungen zusammen. Branches-configs haben jeweils ihr eigenes .gitignore, das erst nach der Zusammenführung angewendet werden sollte. Ich versuche, Konflikte in Gitignore-Datei wegzulassen.

    
Marcin Rogacki 11.09.2013, 20:01
quelle

2 Antworten

6
  

Ich versuche Konflikte in gitignore Datei

zu vermeiden

Stellen Sie die endgültige .gitignore-Datei nicht selbst bereit: Generieren Sie sie bei Bedarf.

Halten Sie Ihre .gitignore-Dateien getrennt, fügen Sie jedoch einen Inhaltsfiltertreiber (ein smudge -Skript) hinzu :

  • erkennen Sie den Inhalt aller .gitignore.xxx-Dateien
  • verketten ihren Inhalt mit dem tatsächlichen .gitignore (der nicht zu git hinzugefügt wird und eine private Datei bleibt)

    
VonC 23.09.2013, 18:12
quelle
3

Da Git dies nicht standardmäßig unterstützt, können Sie selbst eines mit Git-Hooks implementieren, zum Beispiel:

In jedem Fall müssen Sie Ihre ignores verwalten und in eine benutzerdefinierte Datei einbinden, nicht ein .gitignore selbst, da dieses generiert wird. Nehmen wir an, Sie haben eine .gitignoreincludes -Datei in einem Zweig und benutzerdefinierte Include-Dateien in anderen Zweigen.

Sie können also einen "post-merge" Hook wie diesen installieren, zum Beispiel:

%Vor%

Dieser Hook wird bei einer erfolgreichen Zusammenführung gestartet, sucht nach einer .gitignoreincludes -Datei und generiert, falls vorhanden, eine .gitignore -Datei. .gitignore enthält alle Einträge aus .gitignoreincludes und alle Einträge aus allen Dateien, auf die als include FILE_NAME verwiesen wird. Wenn .gitignore sich selbst ignoriert, kann es beim Zusammenführen sicher mehrmals neu generiert werden.

Dies kann weiter verbessert werden, indem include -Anweisungen in eingeschlossenen Dateien ebenso erlaubt werden, oder auch ein post-checkout -Hook kann implementiert werden, um das .gitignore beim Wechseln zwischen Zweigen usw. usw. zu regenerieren.

    
Timur 29.09.2013 18:52
quelle

Tags und Links