2013-01-03 39 views
6

Olası Çoğalt:
git bash : how to check if there’s a new commit availableson SHA1 uzaktan taahhüt alın

Ben son yerel memba son taahhüt karşılaştırmak istediğiniz bir senaryo yazıyorum amacıyla taahhüt kullanıcıya çekilecek işlemlerin olduğunu söyleyin.

En son yapılan yerel işlem SHA git log | head -n 1 | awk '{print $2}' ile görüntülenir.

En son giriş işleminin SHA1'ini yazdırmak için bir eşdeğer var mı?

+0

' git rev-ayrıştırma HEAD' | kafa -n 1 | awk '{print $ 2}' 'uzaktan kumandadaki yeni taahhütleri kontrol etmek için' – miku

+0

'kullanıyorum [git-prompt] (https://github.com/juanpabloaj/git-prompt), bu [satırlar iş yapıyor] (https://github.com/juanpabloaj/git-prompt/blob/master/git-prompt.sh#L522-550) – JuanPablo

cevap

14

Yerel kafa:

$ git rev-parse HEAD 

Uzaktan kafa: Uzak bir depoda

$ git ls-remote <url> <refs> 

görüntüler referanslar mevcut ilişkili taahhüt kimlikleri ile birlikte.

Örnek:

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

İkide çıktısını karşılaştırmak için fark kullanabilirsiniz: == `git günlüğü

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

'ls-remote' man sayfasının tam anlamıyla" commit IDs "yazması ilginç - SHA olarak adlandırılıyor geleneksel git terminolojisinde. Erken dönemlerden bazı eserler olmalı:) –

+0

+1 sadelik için ...: -> – mrutyunjay