2013-10-04 4 views
26

मैं रिमोट गिट रेपो की अंतिम प्रतिबद्ध आईडी प्राप्त करना चाहता हूं।curl-like कमांड का उपयोग कर रिमोट रेपो की अंतिम प्रतिबद्ध आईडी कैसे प्राप्त करें?

कमांड git rev-parse HEAD स्थानीय रूप से क्लोन किए गए गिट रेपो के लिए काम करता है, लेकिन मैं इसे मूल GIT रेपो से CURL कमांड या उससे प्राप्त करना चाहता हूं।

उदाहरण: मैं गिट यूआरएल https://git.appfactorypreview.wso2.com/history/apiapp.git/ की अंतिम प्रतिबद्ध आईडी प्राप्त करना चाहता हूं।

कैसे?

उत्तर

56

इस आदेश

git log --format="%H" -n 1 
+5

आप 'गिट लॉग --format = "% H" -n 1' – gMale

+3

'' 'git log -n1 --format ="% h "' '' द्वारा प्रदान किए गए पाइप को हटा सकते हैं संक्षेप में प्रतिबद्ध हैश । – starlocke

+1

यह गलत है। गिट 2.1.4 "% एच" में स्थानीय प्रतिबद्ध आईडी प्रदर्शित करता है, रिमोट नहीं। –

8

कोशिश आप इस के लिए git ls-remote उपयोग कर सकते हैं। क्योंकि मुझे 'Unauthorized access for repository apiapp.git' मिलता है उदाहरण के लिए मैं torvalds linux-repo उदाहरण के रूप में उपयोग करता हूं।

$ git ls-remote --heads git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
6d15ee492809d38bd62237b6d0f6a81d4dd12d15  refs/heads/master 
18

मुझे लगता है कि क्या आप चाहते हैं यह है:

git ls-remote $URL HEAD 

तो HEAD दूरस्थ भंडार में मौजूद नहीं है, तो आप की संभावना हैं:

git ls-remote $URL refs/heads/master 

नोट पहले में है कि उदाहरण के लिए, HEAD भंडार में चेकआउट के लिए डिफ़ॉल्ट शाखा को इंगित करने जा रहा है। । refs/heads/BRANCH_NAME

+0

आप 'HEAD' का उपयोग नहीं कर सकते, क्योंकि यह वर्तमान शाखा के लिए सूचक है। लेकिन एक नंगे रेपो में यह 'हेड' मौजूद नहीं है। – silvio

+1

यह सच नहीं है कि यह * कभी * मौजूद नहीं है। केस और प्वाइंट: 'गिट एलएस-रिमोट गिट: //github.com/jszakmeister/vimfiles.git HEAD'। एक नंगे रेपो में, यह गिट को बताता है कि कौन सी शाखा डिफ़ॉल्ट शाखा के रूप में चेकआउट करने के लिए है। यह सच है कि आप इस पर भरोसा नहीं कर सकते हैं। तो, उस मामले में आपको एक उपयुक्त रिफनाम का उपयोग करना चाहिए। मैं अपना जवाब अपडेट करूंगा। – jszakmeister

+0

हाँ, वास्तव में :-) – silvio

0

मेरा उत्तर ओपी मदद नहीं करेंगे, क्योंकि वह है: आप उस शाखा आप चाहते है, या सिर्फ दूसरा फार्म का उपयोग करके इच्छित (निर्दिष्ट शाखा के नाम के साथ refs/heads/master की जगह आप चाहते हैं सुनिश्चित करने के लिए की जरूरत है नहीं GitHub पर है, लेकिन मुझे लगता है कि मैं इसे किसी तरह का उल्लेख है, क्योंकि यह curl, या wget का उपयोग करता है, के रूप में ओ पी का अनुरोध किया।

wget -qO- http://api.github.com/repos/Ghini/ghini.desktop/commits/ghini-1.0

Ghini मेरी रेपो है, ghini.desktop मेरी भंडार है, ghini-1.0 शाखा मैं है मुझे दिलचस्पी है। उन्हें अपने मामले में फिट करने के लिए बदलें।

JSON उत्तर एक शब्दकोश है, और ओपी को sha फ़ील्ड में रुचि थी, लेकिन इसमें बहुत अधिक जानकारी है।

संबंधित मुद्दे