मैं एक Github भंडार में जल्द से जल्द प्रतिबद्ध कैसे नेविगेट करूं?


152

GitHub में, क्या किसी बड़े ओपन सोर्स प्रोजेक्ट की जल्द से जल्द कमिटमेंट करने का एक आसान तरीका है?

इस परियोजना में आज के अनुसार 13,000 से अधिक आवागमन हैं। मैं प्रारंभिक इतिहास (या पहले प्रतिबद्ध) को पाने के लिए सैकड़ों और सैकड़ों बार प्रतिबद्ध इतिहास पृष्ठ पर "पुराने" बटन को दबाना नहीं चाहता।


2
क्या आपने इसके बजाय स्थानीय रूप से नेविगेट करने के लिए रिपॉजिटरी को क्लोन करने पर विचार किया है?
jub0bs


इनसाइट्स / योगदानकर्ता मास्टर शाखा के लिए कमिट की पूरी श्रृंखला दिखाते हैं।
टूलमेकरसेव

जवाबों:


102

रिपॉजिटरी को क्लोन करें, कमांड लाइन के साथ खोलें और चलाएं $ git log --reverse

यह कमानों को उल्टे क्रम में दिखाएगा।

तब आप इसे जीथुब पर देख सकते हैं जब आपके पास पहले कमिटमेंट का आईडी (ऑब्जेक्ट नेम) होगा ... कुछ ऐसा ... https://github.com/UserName/Repo/commit/6a5ace7b941120db5d2d50af6321770ddad4779e


16
मुझे विश्वास नहीं हो सकता है कि एक सरल, उचित उत्तर को खोजने के लिए मुझे कितना अजीब, अतिव्याप्त बिज़नेस करना पड़ा। धन्यवाद।
शामिच

7
एक ट्वीक, मैं इस पर onelinearg git log --reverse --oneline
जोड़ूंगा

और अगर आप विंडोज कमांड प्रॉम्प्ट का उपयोग कर रहे हैं और वीम (?) में चूसने से बचना चाहते हैं, तो उपयोग करें git log --reverse --oneline | more। मानक moreव्यवहार, Ctrl + C छोड़ने के लिए।
सिंजई

82

ऐसा करने के लिए कोई स्पष्ट UI नहीं है, लेकिन कमिट लॉग में से किसी एक पृष्ठ पर जाने के लिए सही URL बनाने का एक तरीका है।

मान लीजिए कि हम डॉटनेट / कोरक्लो रिपॉजिटरी का पहला कमिटमेंट पाना चाहते हैं । पहले रिपॉजिटरी में कमिट्स की संख्या पर ध्यान दें: यह वर्तमान में 16,634 है। अब कमिट की सूची पर जाएं, और एक बार "पुराने" पर क्लिक करें । URL कुछ इस प्रकार होगा:https://github.com/dotnet/coreclr/commits/master?after=872095a758a3a6191a9798c94a98e8d1e16b2254+34

+34भाग को नोटिस करें । कि कितने कमिट्स को छोड़ दिया जाता है। इसे बदलकर 16,634 माइनस 1 माइनस 35 प्रति पृष्ठ, जो हमें यह URL देता है , जो आपको coreclr कमिट इतिहास के पहले पृष्ठ पर ले जाता है।


4
अच्छा, मैंने ऐसा करने के लिए एक बुकमार्कलेट बनाया। github.com/bpceee/oldest
bpceee

प्रोजेक्ट कमेटी की सूची में प्रारंभिक प्रतिबद्ध देखने के लिए यह एक अच्छा उत्तर है।
सीओएल

Haha इस तरह से स्वीकृत उत्तर में सुझाए गए तरीके से तेज़ है ;-)
aderchox

46

फ़रवरी 2015: में GitHub , वहाँ एक आसान तरीका है नेविगेट जल्द से जल्द करने के लिए एक बड़ी ओपन सोर्स प्रोजेक्ट के करता है?

हाँ अब है! (अर्थ: रेपो क्लोनिंग के बिना , और git logस्थानीय क्लोन में आवेदन करना )

जनवरी 2017 से, आपके पास GitHub पर " बेहतर सुधार के साथ फ़ाइल इतिहास को नेविगेट करें " है।

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

यहाँ एक डेमो हो रहा है जो कि git / git रेपो (47K + कमिट्स) के मूल पुराने कमिट में है ... तीन क्लिक में!

डेमो गिट / गिट

यहाँ ट्रिक को पहली (या बहुत जल्दी) कमिटमेंट में पाए जाने वाली फाइल को चुना जाता है, जैसे a README.md


8
यह आम तौर पर काम करता है, लेकिन यह मानता है कि आप जानते हैं कि रेपो बनाते समय कौन सी फाइलें मौजूद थीं, और यह कि आप ऐसी लाइनें पा सकते हैं जो स्थापना के बाद से कई बार नहीं बदली हैं।
विल्फ्रेड ह्यूजेस

1
@WilfredHughes मैंने इस पद्धति का उपयोग गो के लिए वापस कूदने के लिए किया 32,986 पहली प्रतिबद्ध के लिए करता है जो एक मजेदार ईस्टर अंडे होता है। इस मामले में, रीडमी शुरुआत तक वापस नहीं गया, इसलिए मैंने Browse filesएक अलग फ़ाइल के लिए दोष को दबाकर और खोलकर प्रक्रिया को दोहराया ।
andrewarchi

@andrewarchi निकाली। वास्तव में पहले कुछ हिट ईस्टर अंडे हैं: stackoverflow.com/a/21981037/6309
VonC

मैं इसे "वर्कअराउंड" मानूंगा जबकि @schmalzy द्वारा उत्तर अधिक प्रत्यक्ष है।
जिमी बोस

@JimmyBosse यह वर्कअराउंड नहीं है। यह मूल प्रश्न का उत्तर है। एक git logही काम करता है अगर आप स्थानीय रूप से (संभावित रूप से विशाल) रेपो क्लोन करते हैं। यदि आप मुट्ठी के लिए " नेविगेट " करना चाहते हैं, तो यह वह है।
VonC

37

मैं नोडज परियोजना के शुरुआती कमिट में से एक देखना चाहता था । मैंने निम्नलिखित किया है।

  1. साइट नोडज का दौरा किया । तब देखा गया कि इस समय कमिट्स की कुल संख्या तेईस हज़ार (23652 सटीक) है।

यहां छवि विवरण दर्ज करें

  1. इसके बाद मैंने उस कमेंट लिंक पर क्लिक किया और जो मुझे नीचे दिखाए अनुसार https://github.com/nodejs/node/commits/master पर ले गया।

यहां छवि विवरण दर्ज करें

  1. अब नीचे की ओर स्क्रॉल किया गया और मुझे नए और पुराने बटन मिले। नया बटन अक्षम है। मैंने पुराने बटन पर क्लिक किया और यह मुझे https://github.com/nodejs/node/commits/master?after=de37ba34c5d6f3a2d18daf482f850be8fddb4621+34 पर ले गया

  2. अब निरीक्षण करें कि url में +34 है। अब मैंने इसे 23000 में बदल दिया (क्योंकि मैंने जितने कमिटमेंट देखे थे, वह 23000 है)। तो नया url मैंने कोशिश की है

https://github.com/nodejs/node/commits/master?after=de37ba34c5d6f3a2d18daf482f850be8fddb4621+23000

  1. अब मैं लगभग वहीं हूं। कुछ और पुनरावृत्तियों के साथ या पुराने बटन क्लिकों के साथ मैं जहाँ चाहता हूँ वहाँ पहुँच गया।

2
क्या यह आपके ऊपर दिए गए उत्तर 2 के उत्तर का एक डुप्लिकेट है? stackoverflow.com/a/49647826
Edric

2
डुप्लिकेट उत्तर है, लेकिन मुझे चित्र पसंद हैं, यह इसे और अधिक आकर्षक बनाता है।
विजेता_जॉर्नर

7

आप init बुकमार्कलेट का उपयोग करके GitHub रिपॉजिटरी के पहले कमिट पर नेविगेट कर सकते हैं

इस में

रेपो के पहले कमिट पर जल्दी से जाने के लिए एक बुकमार्कलेट

अवलोकन

रेपो में सबसे पुरानी कमिट पर जल्दी से नेविगेट करने में सक्षम होना काफी मददगार है। आगे बढ़ें और अपने बुकमार्क बार पर बुकमार्कलेट (लिंक) को खींचें और जब भी आप रेपो के पहले वचन पर जाना चाहें, इसे क्लिक करें।

प्रयोग

किसी विशेष रेपो के लैंडिंग पृष्ठ पर जाएं (e.g. like the one you're on)और बुकमार्कलेट पर क्लिक करें, जो आपको पहले पृष्ठ (प्रारंभिक प्रतिबद्ध) पर ले जाएगा। डिफ़ॉल्ट रूप से, यह masterशाखा को ट्रैक करता है , लेकिन यदि आप branchलैंडिंग पृष्ठ पर परिवर्तन करते हैं , तो यह उस शाखा की पहली प्रतिबद्धता पर जाएगा।

GitHub पर README.md से लिया गया


डिस्क्लेमर : मैंने इस जवाब को पोस्ट करने से कुछ मिनट पहले एक छोटे से रीडमी अपडेट को योगदान दिया।


7

आप निम्नलिखित के साथ आने वाले पहले पृष्ठ पर जा सकते हैं, जिसे मैं क्रोम देव टूल्स में स्निपेट के रूप में रखता हूं।

function githubFirstCommitsPage() {
  let el = document.querySelector('.repository-content');
  let base = el.querySelector('a[data-pjax]').href;
  let count = el.querySelector('.commits .num')
    .textContent
    .trim()
    .replace(/[^\d\.\-]/g, "");
  count = count-36;
  let sha = el.querySelector('.commit-tease-sha')
    .href
    .split('/');
  sha = sha[sha.length-1];
  window.location = `${base}?after=${sha}+${count}`;   
}

githubFirstCommitsPage();

1
धन्यवाद! मुझे नहीं पता था कि आप स्निपेट को बचा सकते हैं, इसलिए आपकी पोस्ट दो आयामों पर सहायक थी।
bmacnaughton 16

6

आपको git log --reversegit की कमांड का उपयोग करने की आवश्यकता है ।

यह रिवर्स रेपो में निर्दिष्ट रेपो के लिए कमिट का इतिहास लौटाएगा (सबसे पुराना से सबसे नया)।

फिर, कुछ sedजादू की मदद से , आपके पास पहले कमिट की तारीख जैसा कुछ हो सकता है (जो कि मैंने देखा है कि मुझे हमेशा अपने लिए जरूरी है)।

git log --reverse | sed -n 3p

अंततः, आप इसे भी स्वचालित करना चाहते हैं (क्योंकि, यह ज्यादातर कमांड टाइप करने के लिए उबाऊ है या इसे याद रखना असंभव है), इसलिए इस तरह की एक शेल स्क्रिप्ट बचाव में आ सकती है।



हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.