GitHub को कमिटेड हैश दिए जाने पर एक कमिटमेंट खोजें


286

मैं गितुब में काफी नया हूं और एक शौकिया-ईश समस्या के साथ आया हूं।

मुझे एक कोड समीक्षा करने के लिए कहा गया है और एक प्रतिबद्ध हैश के साथ प्रदान किया गया है, हालांकि मैंने गिट में देखने की कोशिश की है अगर मैं प्रतिबद्ध हैश का उपयोग कर खोज कर सकता हूं, लेकिन कुछ भी नहीं मिला।

क्या कोई तरीका है जो मैं केवल हैश का उपयोग करके परिवर्तित कोड पा सकता हूं?


46
मुझे यह पूरी तरह से विचित्र लगता है कि गितुब हैश को खोजों में नहीं पहचानता है और यदि हैश से मेल खाता है तो आपको यह दिखाएगा।
क्रेग रिंगर

वास्तव में @ क्रैगरिंगर, जीथब सर्च हैश से मेल खाएगा यदि वे एक पुल अनुरोध में होते हैं । वास्तव में, आप सात-वर्ण हैश उपसर्ग के लिए पूरे जीथब को खोज सकते हैं यदि आप चाहें। लेकिन यह केवल एक प्रतिबद्धता नहीं बल्कि एक पुल अनुरोध होना चाहिए।
टॉड ओवेन

4
@ToddOwen जो अच्छा है, लेकिन बात नहीं है। जब आप उस रेपो के भीतर खोज करते हैं, तो यह रेपो के भीतर प्रतिबद्ध हैश से मेल खाना चाहिए, यह वास्तव में निराला है कि यह नहीं करता है।
क्रेग रिंगर

2
@ क्रेगिंगर यह अब करता है, आखिर में! मेरा नया उत्तर देखें ।
टॉड ओवेन

जवाबों:


378

प्रपत्र का एक URL https://github.com/<owner>/<project>/commit/<hash>आपको उस कमिट में प्रस्तुत किए गए परिवर्तनों को दिखाएगा। उदाहरण के लिए यहाँ एक हाल का बगफिक्स है जिसे मैंने GitHub पर अपनी एक परियोजना के लिए बनाया है:

https://github.com/jerith666/git-graph/commit/35e32b6a00dec02ae7d7c45c6b7106779a124685

आप किसी भी अनोखे उपसर्ग को हैश को छोटा कर सकते हैं, जैसे:

https://github.com/jerith666/git-graph/commit/35e32b


मुझे पता है कि आपने सिर्फ GitHub के बारे में पूछा था, लेकिन पूर्णता के लिए: यदि आपके पास रिपॉजिटरी है, तो कमांड लाइन से, आप मूल रूप से इन कमांडों में से किसी एक के साथ मूल रूप से एक ही चीज़ प्राप्त कर सकते हैं (यहां अद्वितीय उपसर्ग भी काम करते हैं):

git show 35e32b6a00dec02ae7d7c45c6b7106779a124685
git log -p -1 35e32b6a00dec02ae7d7c45c6b7106779a124685

नोट: यदि आप कमिटेड हैश को बहुत दूर करते हैं, तो कमांड लाइन आपको एक असंतुष्ट संदेश देती है, लेकिन GitHub सिर्फ 404 लौटाएगा।


जब मैं मोंगो में जोर लगाने की कोशिश कर रहा था, तो मुझे यह पता चला, और पाया कि किसी विशिष्ट फ़ाइल को देखने के लिए एक समान URL पैटर्न है, जिसे कमिट का हैश दिया गया है: github.com/$owner/$project/blob/osobsh/path /to/file.ext - जैसे github.com/mongodb/mongo/blob/…
RubyTuesdayDONO

इस में: git log -p -1 35e32b6a00dec02ae7d7c45c6b7106779a124685, -1क्योंकि अन्यथा यह सब olders करता दिखाई देंगे आवश्यक है; यह जानना अच्छा है कि आप हैश के चार प्रारंभिक नंबरों (मेरे परीक्षणों में न्यूनतम) का उपयोग कर सकते हैं, क्योंकि हैश के लिए कोई ऑटो पूरा नहीं होता है; और आप इस तरह शाखा निर्दिष्ट नहीं कर सकते: git log master -p -1 35e3। Git संस्करण: 1.7.9.5।
राफेल बैरोस

एक और अवलोकन, लेकिन एक बहुत महत्वपूर्ण: फिर से, आप एक शाखा निर्दिष्ट नहीं कर सकते, लेकिन जब आप एक हैश देते हैं तो यह स्वचालित रूप से स्थानीय और दूरस्थ शाखाओं को खोजता है। तो, हाँ, आप कमांड लाइन द्वारा स्थानीय रेपो में विलय करने से पहले एक विशिष्ट दूरस्थ अंतर की खोज कर सकते हैं।
राफेल बैरोस

1
यदि किसी की सोच में (मैं था!), यह भी दोनों के पहले 8 के साथ काम करता है hash पर दोनों github: github.com/jerith666/git-graph/commit/35e32b6a और कमांड लाइन परgit log -p -1 35e32b6a
SimpleGy

7
यह गूंगा है कि यूआई इसे आसान नहीं बनाता है ... मुझे उम्मीद है कि फीचर अनुरोध इसे बना देगा।
ओक्रोक्यूलेट

49

देखें सिंगल कमिट:
https://github.com/<user>/<project>/commit/<hash>

लॉग देखें:
https://github.com/<user>/<project>/commits/<hash>

पूरा रेपो देखें:
https://github.com/<user>/<project>/tree/<hash>

<hash> जब तक यह अद्वितीय है तब तक कोई भी लंबाई हो सकती है।


1
यदि लंबाई कम से कम 7 अक्षर है तो ठीक है
कसुन सियामबलपिटि

3
प्रतिबद्ध हैश के लिए कोई न्यूनतम लंबाई 4 वर्ण नहीं है (फिर से, जब तक कि यह पूरे भंडार में अद्वितीय है)
क्वर्टीज़गुई

21

कमिट खोजने की क्षमता हाल ही में GitHub में जोड़ी गई है।

एक हैश की खोज करने के लिए, बस खोज बॉक्स में कम से कम पहले 7 अक्षर दर्ज करें। फिर परिणाम पृष्ठ पर, मिलान करने वाले कमिट देखने के लिए "कमिट्स" टैब पर क्लिक करें (केवल डिफ़ॉल्ट शाखा पर, आमतौर पर master), या "मुद्दे" टैब पर कमेंट्स के साथ अनुरोध देखने के लिए।

अधिक स्पष्ट होने के लिए आप hash:खोज में उपसर्ग जोड़ सकते हैं , लेकिन यह वास्तव में आवश्यक नहीं है।

एक REST API भी है (लिखने के समय यह अभी भी पूर्वावलोकन में है)।


2
मुझे आश्चर्य है कि यह वास्तव में इस तरह से काम करता है। यह इतना सहज नहीं है। डिफ़ॉल्ट रूप से गितुब "कोड" टैब दिखाएगा, इसमें स्पष्ट रूप से कोई परिणाम नहीं होगा। क्या इसे डिफ़ॉल्ट रूप से किसी भी परिणाम के साथ एकमात्र टैब नहीं दिखाना चाहिए?
ग्रीष्मकाल

तो स्पष्ट होने के लिए, यदि आपके पास गिटबब का अपना उद्यम स्थापित है, तो आप किसी भी रेपो में किसी भी तरह की खोज कर सकते हैं, जैसे: https://YourGithubDomain/search?q=YOUR_COMMIT_HASH&type=Commits नोट करें कि मैंने गितुब पर भी यह कोशिश की, और इसने वहां भी काम किया जैसे https://github.com/search?q=38db172d13962ea177c00c9a3b4b3169b317e94b&type=Commits
ब्रैड पार्क्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.