7 दिन पहले क्या लिखा था; 14 घंटे पहले प्रतिबद्ध "GitHub पर मतलब है?


21

मैं इसे इस GitHub रिपॉजिटरी पर देख रहा हूं :

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

इसका क्या मतलब है? "7 दिन पहले" और "14 घंटे पहले प्रतिबद्ध" कुछ कैसे हो सकता है?


क्या वह संपादित की गई फाइलों के बीच टाइमस्टैम्प को माप सकता है और जब वह वास्तव में प्रतिबद्ध होता है और धक्का दिया जाता है? मैं इस तरह की सुविधा के लिए एक उपयोग नहीं देखता, लेकिन यह थोथा है कि शब्द का अर्थ क्या है ..
सेठ

@ सेठ, जो मैंने पहले सोचा था, लेकिन मैंने कभी गिट के साथ टाइमस्टैम्प के साथ कुछ भी करने के बारे में नहीं सुना।
पूर्ववत करें

@ सेठ गिट फ़ाइल टाइमस्टैम्प की अनदेखी करता है। कमिटर लेखक टाइमस्टैम्प को ऑन-द-फ्लाई का उपयोग करके बदल सकता है commit --date=। श्वेर्न इसे बहुत अच्छी तरह से समझाते हैं।
ADTC

@ और मुझे आशा है कि आप "14 घंटे पहले" को "14 दिन पहले" के साथ भ्रमित नहीं कर रहे हैं ... अब यह वास्तव में अजीब होगा, कुछ ऐसा करने के लिए, जो जाहिर तौर पर 7 दिन बाद तक भी लेखक नहीं था ... मैं ' मुझे यकीन नहीं है अगर Git लेखक टाइमस्टैम्प को कमिटर टाइमस्टैम्प से अधिक सेट करने से रोकता है; यह शायद परवाह नहीं है।
ADTC

जवाबों:


21

Git में लेखक (कोड लिखने वाले व्यक्ति) और कमिट करने वाले (रिपॉजिटरी के लिए प्रतिबद्ध व्यक्ति) की एक अलग अवधारणा है। इसी तरह दोनों के लिए अलग-अलग तिथियां हो सकती हैं। वे आमतौर पर एक ही हैं।

यदि आप कोड लिखना या पैच सबमिट करने वाले व्यक्ति के पास रिपॉजिटरी के लिए पुश एक्सेस नहीं है, जो उन प्रोजेक्ट्स में है, जो पैच सबमिशन के लिए मेलिंग सूचियों का उपयोग करते हैं, तो वे अलग-अलग होंगे। इस मामले में, धक्का पहुँच के साथ व्यक्ति पैच और चलाने लागू होगा git commitके साथ या तो --authorऔर --dateस्विच या GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL और GIT_AUTHOR_DATE वातावरण चर का उपयोग कर (में दर्ज Git-लिखें पेड़

दूसरा मामला git cherry-pickरिबेट का उपयोग कर रहा है। कमेंटरी चेरी पिक करने वाला व्यक्ति है, और लेखक मूल प्रतिबद्ध का लेखक है। Git आपके लिए लेखक की पहचान और दिनांक निर्धारित करने का काम संभालेगा।

आप इस जानकारी को रिपॉजिटरी में देख सकते हैं git log --pretty=fuller

commit 21550561941b078ea1862b882ec89f26696ff5bb (HEAD, origin/master, origin/HEAD, master)
Author:     thiagopnts <thiagopnts@gmail.com>
AuthorDate: Tue Nov 18 14:52:49 2014 -0200
Commit:     Thiago Pontes <email@thiago.me>
CommitDate: Tue Nov 25 09:46:58 2014 -0200

    open repository url if confirmed, closes #1

1
git rebaseकारण यह भी है कि प्रतिबद्ध दिनांक को अद्यतन किया जाता है जबकि लेखक दिनांक वही रहता है।
cjm

@cjm तुम सही हो! रिबेस और चेरी-पिक दोनों इस संबंध में समान व्यवहार करते हैं। यह समझ में आता है, एक रिबेस को कई चेरी-पिक्स के रूप में सोचा जा सकता है।
श्वेर्न

1
मेल से पैच अप्लाई करने के लिए, इसमें git am भी है , जो मेल संदेश से दिनांक और लेखक को स्वचालित रूप से लेता है।
डेल्टैब

6

यह एक मिश्रण जैसा लगता है कि कैसे Git तारीखों के साथ काम करता है और इसे GitHub के समापन कीवर्ड के साथ कैसे संदर्भित किया गया था ।

Git प्रतिबद्ध और लेखक की तारीखों के बीच अलग हो जाती है। में प्रो Git वे अंतर में थोड़ा जाना :

लेखक वह व्यक्ति है जिसने मूल रूप से काम लिखा है, जबकि कमिटर वह व्यक्ति है जिसने अंतिम बार काम को लागू किया है। इसलिए, यदि आप किसी प्रोजेक्ट में पैच भेजते हैं और कोर सदस्यों में से एक पैच लागू करता है, तो आप दोनों को क्रेडिट मिलता है - आप लेखक के रूप में, और कोर सदस्य कमिटेटर के रूप में।

इसलिए जब कोड स्वयं "7 दिन पहले" (स्थानीय रूप से) लिखा गया था, तो इसे "लागू नहीं किया गया था" या "14 घंटे पहले" तक कोड को पैच कर दिया गया था, क्योंकि यह रिमोट में तब तक नहीं देखा गया था जब तक कि यह संदर्भित न हो। संदेश।


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

2
कमिट करना रिमोट को पुश करने जैसा नहीं है। याद रखें कि गिट में लगभग सब कुछ स्थानीय रूप से किया जा सकता है, जिसमें कमिट भी शामिल है। आप पहले कमिट कर सकते हैं (जो टाइमस्टैम्प दोनों देता है) और बाद में पुश करें (जो केवल कमिट को रिमोट पर अपलोड करता है लेकिन कोई टाइमस्टैम्प नहीं देता है)। कोई 'पुश टाइमस्टैम्प' नहीं है क्योंकि यह जानने के लिए महत्वहीन है कि एक प्रतिबद्ध धक्का दिया गया था - यह (और अक्सर होता है) किसी भी संख्या में धकेल दिया और खींचा जा सकता है।
ADTC
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.