Ich möchte die folgenden Aktionen, vorzugsweise in Rake, in einem einzigen Befehl zusammenfassen:
- Holen Sie sich die Version meines lokalen Git-Repository.
- Git ziehen den neuesten Code.
- Git unterscheidet sich von der Version, die ich in Schritt 1 extrahiert habe, von der Version, die sich jetzt in meinem lokalen Repository befindet.
Mit anderen Worten, ich möchte den neuesten Code aus dem zentralen Repository abrufen und sofort einen Unterschied darüber generieren, was sich seit dem letzten Ziehen geändert hat.
git diff HEAD
zeigt Ihnen, was sich zwischen HEAD und Ihrer aktuellen Arbeitskopie geändert hat. Darum hat Teflon Ted nicht gebeten.git diff HEAD
arbeitete für das, was ich brauchte (zumindest denke ich, dass es das war, wonach ich suchte: D)@{1}..
genau gemessen wird? Es hilft nicht, es einfach in Google zu werfen.@{1}
bedeutet den letzten Reflog-Eintrag, z. B. was auch immer der aktuelle Zweig zeigte, bevor er auf das aktuelle Commit zeigte.@{1}..
Notation etwas erweitern, möglicherweise die Standardeinstellungen explizit dort einfügen und dann die kompakte Version anzeigen, damit sie weniger magisch ist.Gregs Weg sollte funktionieren (nicht ich, andere Greg: P). In Bezug auf Ihren Kommentar ist origin eine Konfigurationsvariable, die von Git festgelegt wird, wenn Sie das zentrale Repository auf Ihren lokalen Computer klonen. Im Wesentlichen merkt sich ein Git-Repository, woher es stammt. Sie können diese Variablen jedoch manuell festlegen, wenn Sie git-config verwenden müssen.
Dabei ist URL der Remote-Pfad zu Ihrem zentralen Repository.
Hier ist eine Beispiel-Batch-Datei, die funktionieren sollte (ich habe sie nicht getestet).
quelle
git remote set-url origin <url>
stattgit config
, um die URL für eine Git- Fernbedienung zu ändern . Ist da ein Unterschied? Ich weiß es nicht, aber es scheint, dass diesgit remote
ein geeigneteres Werkzeug für den Job ist.git remote set-url
wäre der geeignetere Weg, es zu tun. Ich habe verwendet,git config
weilset-url
es keine Option war, als ich das ursprünglich schrieb.Dies ist einer Frage sehr ähnlich, die ich gestellt habe, wie man Änderungen an einem Zweig in Git erhält . Beachten Sie, dass sich das Verhalten von Git Diff gegenüber Git Log uneinheitlich unterscheidet, wenn zwei Punkte gegenüber drei Punkten verwendet werden. Für Ihre Anwendung können Sie jedoch Folgendes verwenden:
Danach
git pull
werden die Änderungen in Ihrem HEAD zusammengeführt.quelle
git fetch
gefolgt von agit diff origin/branchname
ist der beste Weg, um den Unterschied vor dem Ziehen zu überprüfen.Wenn Sie dies in Ihr Bash-Profil einfügen, können Sie Grinsen (Git Remote Incoming) und Mörtel (Git Remote Outgoing) ausführen, um verschiedene Commits anzuzeigen, die für den Ursprungsmaster ein- und ausgehen.
quelle