Sie wirklich wollen nur, wenn (nach Abholen) Remote-Tracking-Zweig Herkunft/Zweig, um zu sehen das gleiches wie Ihrem lokalen Tracking-Zweig ist, so dass nur der von solchen des SHA überprüfen (durch eine Zusammenführung gefolgt Sie aufholen). Sie könnten also einfach eine rev-Analyse auf Herkunft/Zweig durchführen und diese mit der rev-Analyse vergleichen, da es nicht darauf ankommt, wie viele Commits oder was die Änderungen waren, nur, dass es Änderungen gab (oder ein Git-Log --oneline Herkunft/Branch..branch piped zu einem wc-l, Art der Sache).
Ihre Idee von dem Hash über das gesamte Verzeichnis ist ähnlich wie die SHA des Commits tatsächlich berechnet wird, so dass nur die Verwendung der SHA das erreicht. Beachten Sie, dass mein Vorschlag scheitern würde, wenn jemand einen Commit und dann einen Revert ausführen würde und Sie den gleichen Inhalt haben. Die SHAs würden sich mit jedem weiteren Commit ändern (da sie auch die Commit-Informationen sowie den SHA enthalten), aber Ich würde denken, dass es ein unwahrscheinliches Szenario ist und nicht für das Sie optimieren müssen.
Also mein Ansatz geht davon aus, dass Sie einen lokalen Repo haben, den Sie von der Fernbedienung klonen. Wenn nicht, oder wenn Sie nicht den gesamten Remote-Repo herunterziehen möchten, können Sie einen flachen Klon erstellen, um den Tipp zu erhalten und sich daran zu erinnern, was der Tipp zuvor war.
Ein besserer Ansatz ist es jedoch, git ls-remote
zu verwenden und diese Ausgabe zu analysieren und sich an ihren Zustand zu erinnern und sie beim nächsten Mal zu vergleichen.
NAME
git-ls-remote - List references in a remote repository
SYNOPSIS
git ls-remote [--heads] [--tags] [--upload-pack=<exec>]
[--exit-code] <repository> [<refs>...]
DESCRIPTION
Displays references available in a remote repository along with the associated commit IDs.
Sie eine Ausgabe wie die folgende sehen:
From https://github.com/foobar/myRepo.git
3133d81f8cca51c73c92aeeaa1c762b177683456 HEAD
3133d81f8cca51c73c92aeeaa1c762b177683456 refs/heads/master
Sie sehen also, es HEAD des Remote-Listen sowie die Refs und seine eine einfache Sache davon Parsen und es zu speichern.
Zwei Kommentare zu den Antworten bisher: (1) Ich gehe nicht davon aus, dass es ein Remote Repo gibt. (2) Ich interessiere mich für den gesamten Inhalt des Repos, nicht nur für einen Zweig und nicht nur für die verwalteten Dateien.Das Ändern einer Konfiguration oder das Hinzufügen eines Tags würde als Änderung gelten, da dies bedeutet, dass ich die Sicherung aktualisieren muss. Um es klar zu sagen, ich habe es mit einem sehr großen Repo zu tun, der nicht sehr oft geändert wird und ihn daher von den normalen periodischen inkrementellen Backups ausschließt. –