2013-01-03 5 views
6

Mögliche Duplizieren:
git bash : how to check if there’s a new commit availableErhalten SHA1 von neuesten Fern begehen

ich ein Drehbuch schreibe, wo Ich mag würde die neuesten lokalen auf die neueste verpflichten stromaufwärts, um verpflichten zu vergleichen, um zu Sagen Sie dem Benutzer, dass Commits zu ziehen sind.

Die letzte lokale Festschreibung SHA wird mit git log | head -n 1 | awk '{print $2}' angezeigt.

Gibt es ein Äquivalent zum Drucken des SHA1 des letzten Upstream-Commits?

+0

'git rev-parse HEAD' ==' git log | Kopf -n 1 | awk '{print $ 2}' ' – miku

+0

für die Überprüfung neuer Commits in Remotes Ich benutze diese [git-prompt] (https://github.com/juanpabloaj/git-prompt), diese [Zeilen machen den Job] (https://github.com/juanpabloaj/git-prompt/blob/master/git-prompt.sh#L522-550) – JuanPablo

Antwort

14

Lokale Kopf:

$ git rev-parse HEAD 

Fernkopf:

$ git ls-remote <url> <refs> 

Displays Referenzen in einem Remote-Repository zusammen mit dem zugehörigen IDs begehen.

Beispiel:

$ cd ~/github/scrapy/scrapy 
$ git rev-parse HEAD 
9f003a73daec59a73c23a2214b1b8d15a4391a2f 
$ git ls-remote git://github.com/scrapy/scrapy.git HEAD 
9f003a73daec59a73c23a2214b1b8d15a4391a2f 

können Sie diff verwenden, um die Ausgabe der beiden zu vergleichen:

$ diff <(git ls-remote git://github.com/scrapy/scrapy.git HEAD) \ 
     <(git rev-parse HEAD) 
+0

Interessanterweise sagt die Manpage von 'ls-remote' wörtlich" commit IDs "- sie heißen SHAs in herkömmlicher Git Terminologie. Muss ein Artefakt aus den frühen Tagen sein;) –

+0

+1 zur Vereinfachung ...: -> – mrutyunjay