[git] uncommitted/unpushed changes erkennen

16/05/2009 - 23:22 von Marc Haber | Report spam
Hallo,

ich möchte gerne ein script schreiben, das eine Warnung ausspuckt,
wenn ein ausgecheckter Working Tree (a) vom git-repository abweicht
oder (b) im "remote origin" repository noch nicht gepullte Änderungen
stehen.

Ich gebe zu, dass ich mich um (b) noch nicht gekümmert habe, aber für
(a) habe ich keine andere Lösung gefunden, als die Ausgabe von git
status zu parsen - denn git status gibt irgendwie immer exit code 1
zurück.

Gibt es irgendwo Dokumentation über die Exit Codes der verschiedenen
git-Kommandos und/oder vielleicht sogar schon eine fertige Lösung für
meine beiden Herausforderungen?

Grüße
Marc

Marc Haber | " Questions are the | Mailadresse im Header
Mannheim, Germany | Beginning of Wisdom " | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834
 

Lesen sie die antworten

#1 Jörg Sommer
18/05/2009 - 09:43 | Warnen spam
Hallo Marc,

Marc Haber <mh+ schrieb:
ich möchte gerne ein script schreiben, das eine Warnung ausspuckt,
wenn ein ausgecheckter Working Tree (a) vom git-repository abweicht



Git status gibt Dir per Return‐Wert an, ob beim nàchsten Commit
irgendwelche Änderungen übernommen werden. 0 --> ja, es wird ein Commit
erstellt werden, !0 --> nein, git commit wird einen Fehler melden und
nichts tun.

Du kannst aber auch mit git update-index --refresh prüfen, ob Dateien
veràndert wurden, die aber nicht in den Index gekommen sind, sprich nach
einem git add -u . würde dann ein Commit erstellt werden.

oder (b) im "remote origin" repository noch nicht gepullte Änderungen
stehen.



Suchst Du sowas?

git config --get-regexp 'branch\..*\.merge' \
| while read -r i
do
lbranch=${i#branch.}
lbranch=${lbranch%.merge *}
rbranch=${i#* }
if test -n "$(git log -n1 --pretty=oneline "$lbranch..$rbranch")"
then
echo "$i needs a rebase"
fi
done

oder einfach nur

test -n "$(git log -n1 --pretty=oneline master..origin/master)"

Schöne Grüße, Jörg.
Ein Optimist ist in der Regel ein Zeitgenosse, der ungenuegend informiert ist.
(John B. Priestley)

Ähnliche fragen