Wie kann ich ein Bash-Skript einchecken, wenn mein lokales Git-Repository Änderungen enthält?
Gibt es einige Skripte, die nicht richtig funktionieren, wenn Sie auf änderungen zu überprüfen.
Versuchte ich es so:
VN=$(git describe --abbrev=7 HEAD 2>/dev/null)
git update-index -q --refresh
CHANGED=$(git diff-index --name-only HEAD --)
if [ ! -z $CHANGED ];
then VN="$VN-mod"
fi
Ist es eine Art boolean überprüfen, ob es änderungen seit dem letzten commit bzw. wie kann ich wirklich testen, ob es neue änderungen zu meinem lokalen repository?
Ich Tue all das für eine version die Erstellung Skript (das fand ich irgendwo hier).
Kommentar zu dem Problem
Was ist falsch mit
git status
? @karlphillip: Es macht eine Menge der Verarbeitung, dass Sie nicht wirklich brauchen.
InformationsquelleAutor der Frage kmindi | 2011-02-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie tun, wird fast arbeiten: Sie sollten zitieren
$CHANGED
falls es leer ist, und-z
tests für leer, was bedeutet, dass keine änderungen. Was Sie meinte war:Einem Zitat aus Git ' s
GIT-VERSION-GEN
:Sieht es aus wie Sie waren, die das kopieren, aber Sie haben einfach vergessen, dass detail zu zitieren.
Natürlich könnte man auch nur dazu:
Oder wenn Sie nur über die "etwas geändert hat" - Fall:
Mit
--quiet
hat den Vorteil, dass der Git Verarbeitung stoppen, sobald es auf eine single-diff, so kann es nicht überprüfen Sie Ihre gesamte Arbeit Baum.InformationsquelleAutor der Antwort Cascabel
Mithilfe
git status
:InformationsquelleAutor der Antwort ryanmoon
Obwohl Jefromi s Antwort ist gut, ich bin dieses posting nur zur Referenz.
Aus der Git source code gibt es eine
sh
Skript enthält die folgenden.InformationsquelleAutor der Antwort Arrowmaster
Ich hatte ein ähnliches problem, aber ich hatte zu prüfen, für die hinzugefügten Dateien auch. Also habe ich Folgendes gemacht:
InformationsquelleAutor der Antwort Leon Waldman
Hier ein schönes set von Bash-Skript Funktionen, die überprüfen, ob es eine diff, druckt der Benutzer und der Benutzer aufgefordert, wenn Sie möchten, um änderungen vor der Bereitstellung. Es ist gebaut für eine Heroku-und Python-Anwendung, aber es braucht wenig änderung für jede andere Anwendung.
Können Sie kopieren von Gist auf: https://gist.github.com/sshadmand/f33afe7c9071bb725105
InformationsquelleAutor der Antwort Sean
git status
ist dein FreundÄnderung an der Git-Verzeichnis für
git status
arbeiten:Legen Sie eine variable festlegen, die Arbeit, die Struktur, so dass Sie don T get 'Diese operation muss ausgeführt werden, in einer Arbeit mit dem Baum" Fehler:
Erfassen die
git status
Ausgabe in einer Bash-variableVerwenden
--porcelain
garantiert werden, in ein standard-format und die HIERFÜR gültigen:Wenn -n (nicht null) haben wir verpasst.
InformationsquelleAutor der Antwort AndrewD
Hier ist, wie ich es tun...
InformationsquelleAutor der Antwort Jader Feijo
Dieser funktioniert gut. Es wird auch eine Liste der betroffenen Dateien:
InformationsquelleAutor der Antwort robertberrington