Die Frage des OP ist jetzt mehr als 9 Jahre alt. Ich weiß nicht, was damals man git-statusgesagt wurde, aber hier ist, was es jetzt sagt:
--porcelain[=<version>]
Give the output in an easy-to-parse format for scripts. This is similar to the
short output, but will remain stable across Git versions and regardless of user
configuration. See below for details.
The version parameter is used to specify the format version. This is optional and
defaults to the original version v1 format.
Dies deutet darauf hin, dass die --porcelain Argument gut geeignet ist, den Status eines Repos auf Änderungen zu testen.
In Bezug auf die Frage des OP: "Gibt es eine Art boolesche Prüfung, ob seit dem letzten Festschreiben Änderungen vorgenommen wurden, oder wie kann ich wirklich testen, ob neue Änderungen an meinem lokalen Repository vorgenommen wurden?"
Ich glaube nicht, dass bashdas per se boolesche Datentypen hat , aber das mag nah genug sein:
[ -z "`git status --porcelain`" ] && echo "NULL-NO DIFFS" || echo "DIFFS EXIST"
Dies kann als if-then-elseFormular für ein Skript neu umgewandelt oder unverändert von der CLI im git repo-Ordner ausgeführt werden . Verwenden Sie andernfalls die -COption mit einer Pfadangabe zum interessierenden Repo:
git -C ~/path/to/MyGitRepo status --porcelain
Nachtrag:
- Einige empfehlen, die
-u, --untracked-fileOption zu verwenden, um zu vermeiden, dass der Status von Dateien gemeldet wird, die ignoriert werden sollen. Beachten Sie, dass dies einen unglücklichen Nebeneffekt hat : Dateien, die neu hinzugefügt wurden, werden ebenfalls nicht angezeigt. Die Option ist in einigen Situationen nützlich , sollte jedoch vor der Verwendung sorgfältig geprüft werden.
git status?