2013-01-03 9 views
6

संभव डुप्लिकेट:
git bash : how to check if there’s a new commit availableनवीनतम के SHA1 दूरस्थ प्रतिबद्ध

मैं एक स्क्रिप्ट है जहाँ मैं तुलना करने के लिए नवीनतम स्थानीय नदी के ऊपर नवीनतम के लिए प्रतिबद्ध चाहते हैं लिख रहा हूँ करने के लिए प्रतिबद्ध उपयोगकर्ता को बताएं कि खींचने के लिए प्रतिबद्ध हैं।

नवीनतम स्थानीय प्रतिबद्धता SHA git log | head -n 1 | awk '{print $2}' के साथ प्रदर्शित होती है।

क्या नवीनतम अपस्ट्रीम प्रतिबद्धता के SHA1 को प्रिंट करने के बराबर है?

+0

'Git रेव-पार्स HEAD' ==' Git लॉग | हेड -1 एन | अजीब '{प्रिंट $ 2}' ' – miku

+0

रिमोट्स में नए काम की जांच के लिए मैं इस [git-prompt] (https://github.com/juanpabloaj/git-prompt) का उपयोग करता हूं, यह [लाइनें नौकरी बनाती हैं] (https://github.com/juanpabloaj/git-prompt/blob/master/git-prompt.sh#L522-550) – JuanPablo

उत्तर

14

स्थानीय सिर:

$ git rev-parse HEAD 

रिमोट सिर:

$ git ls-remote <url> <refs> 

दिखाता संदर्भ एक दूरस्थ भंडार में उपलब्ध जुड़े आईडी प्रतिबद्ध के साथ।

उदाहरण:

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

आप दो के उत्पादन की तुलना करने के diff का उपयोग कर सकते हैं:

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

दिलचस्प है कि 'ls-remote' का मैन पेज सचमुच" प्रतिबद्ध आईडी "कहता है - उन्हें SHA कहा जाता है पारंपरिक गिट शब्दावली में। शुरुआती दिनों से कुछ आर्टिफैक्ट होना चाहिए;) सादगी के लिए –

+0

+1 ...: -> – mrutyunjay