Wie Sie bereits erwähnt haben, ist das Patch- Git-Submodul: Ignorieren Sie schmutzige Submodule, um eine Zusammenfassung und einen Status zu erhalten.
Ebenfalls angekündigt in der Version Git 1.7.2-rc2 :
Git v1.7.2 Release Notes (draft)
================================
Updates since v1.7.1
--------------------
Option " git status
" gelernt " --ignore-submodules
".
Bedeutung:
git config --global diff.ignoreSubmodules dirty
Dies als Option zu betrachten, ist derzeit nicht genau der gewählte Ansatz :
Nach dieser Serie plane ich, eine Konfigurationsoption ' ignore
' hinzuzufügen .gitmodules
, die für jedes Submodul entweder auf "alle", "schmutzig", "nicht verfolgt" oder "keine" (Standardeinstellung) eingestellt werden kann.
" git diff
" und " git status
" verwenden diesen Konfigurationswert für jedes Submodul.
Die Verwendung von " --ignore-submodule
" überschreibt diesen Standard (und der neue Parameter "none" wird dort hinzugefügt, um die Konfigurationseinstellungen überschreiben zu können).
Und um zu vermeiden, dass Sie git submdule sync
jedes Mal " " tun müssen, wenn sich diese Option ändert, möchte ich zuerst danach suchen .git/config
.
Wird es dort nicht gefunden, wird es .gitmodules
, falls vorhanden , entnommen .
Benutzer können die Einstellung also überschreiben, aber wenn dies nicht der Fall ist, kann Upstream sie leicht ändern (z. B. wenn ein Submodul .gitignore
aktualisiert wurde, sodass " ignore=untracked
" nicht mehr erforderlich ist, kann es entfernt werden).
Auch das Wechseln von Zweigen wirkt sich sofort aus, wenn der ignore
Eintrag in den .gitmodules
Zweigen unterschiedlich ist.
Ein anderer Ansatz, um den Git-Status (oder einen beliebigen Git-Befehl) zum Ignorieren eines bestimmten Submoduls festzulegen, ist mit Git 2.13 (Q2 2017) verfügbar:
git config submodule.<name>.active false
Weitere Informationen finden Sie unter " Neue Commits für Git-Submodul ignorieren ".