2012-08-08 8 views
53

मैं अपने Git लॉग देखने और पाते हैं कि AuthorDate और CommitDate मेरी प्रतिबद्ध से कुछ के लिए थोड़ा अलग है:क्यों गिट AuthorDate CommitDate से अलग है?

commit 3a5912f90dc5227f308e99f95152fbee2301c59a 
Author:  <hidden> 
AuthorDate: Fri Jun 15 10:57:22 2012 +0800 
Commit:  <hidden> 
CommitDate: Fri Jun 15 11:14:37 2012 +0800 

लेखक और कमिट ही मुझे है।

यह कैसे होता है? मैं दिनों के लिए परेशान हूँ।

अधिक (341 से बाहर 17 प्रतिबद्ध में होता है) के होते हैं:

+------------------------------+-------------------------------+ 
| from_unixtime(authored_date) | from_unixtime(committed_date) | 
+------------------------------+-------------------------------+ 
| 2012-06-15 10:57:22   | 2012-06-15 11:14:37   | 
| 2012-06-15 14:39:54   | 2012-06-15 14:48:57   | 
| 2012-06-19 12:28:21   | 2012-06-19 12:29:41   | 
| 2012-06-21 18:16:25   | 2012-06-21 18:28:48   | 
| 2012-06-26 17:30:54   | 2012-06-26 17:33:55   | 
| 2012-07-13 11:41:43   | 2012-07-13 11:42:17   | 
| 2012-07-13 11:56:02   | 2012-07-13 12:13:22   | 
| 2012-07-13 12:05:09   | 2012-07-13 12:12:24   | 
| 2012-07-12 18:38:49   | 2012-07-13 12:26:35   | 
| 2012-07-13 11:00:47   | 2012-07-13 12:25:15   | 
| 2012-07-16 14:10:54   | 2012-07-16 14:15:01   | 
| 2012-07-13 12:56:51   | 2012-07-16 13:49:48   | 
| 2012-07-16 14:10:54   | 2012-07-16 14:19:46   | 
| 2012-07-24 16:05:05   | 2012-07-24 16:05:48   | 
| 2012-07-24 17:42:58   | 2012-07-24 17:43:33   | 
| 2012-07-24 17:42:58   | 2012-07-24 17:45:18   | 
| 2012-07-26 16:55:40   | 2012-07-26 16:55:53   | 
+------------------------------+-------------------------------+ 
+0

हम्म के रूप में कोर सदस्य के रूप में — आप इसे जब हो रहा तरह लगता है विलय शाखाएं। – fossilet

+1

संबंधित: http://stackoverflow.com/questions/18750808/difference-between-author-and-committer-in-git –

उत्तर

83

लेखक दिनांक नोट्स जब मूल रूप से यह प्रतिबद्धता बनाई गई थी (यानी जब आपने git commit समाप्त किया था)। git commit के दस्तावेज़ों के अनुसार, लेखक की तारीख को --date स्विच का उपयोग करके ओवरराइड किया जा सकता है।

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

वही हो सकता है यदि आप अपनी प्रतिबद्धता बनाते हैं और किसी अन्य रेपो में पैच लागू करने के लिए अपना पैच भेजते हैं: लेखक की तारीख आपके git commit की तिथि होगी, प्रतिबद्ध तिथि उस तारीख पर सेट की जाएगी पैच अन्य रेपो में लागू होता है।

यदि आप दो सहयोगियों को पैच भेजते हैं, तो एक लेखक की तारीख होगी लेकिन दो अलग-अलग प्रतिबद्धता तिथियां होंगी।

यह भी Git Book में बताया गया है:

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

+0

क्या मेरा मामला शाखाओं में विलय करते समय होगा? – fossilet

+1

नहीं। मुझे विश्वास है कि तारीख एसएचए का हिस्सा है, इसलिए जब तक आप कुछ ऑपरेशन नहीं करते हैं जो इतिहास को फिर से लिखता है, जैसे कि रीबेजिंग, इसे बदलना नहीं चाहिए। – asmeurer

+0

एक संक्षिप्त वर्णन है कि हमें चेरी-पिक के बाद टाइमस्टैम्प को बदलने के बाद, प्रतिबद्धता के पूर्वजों को पुनर्जीवित करने या पुन: प्रयास करने की अपेक्षा की जानी चाहिए। 'गीट शो-एस -format ="% cD लेखक% एडी "HEAD' के साथ खेलना, ऐसा लगता है कि, उदाहरण के लिए, 'गिट gui' दोनों के साथ प्रतिबद्ध संदेश में संशोधन, लेकिन 'गिट प्रतिबद्ध - -एंडेंड 'केवल कमेंट तारीख को अपडेट करता है। unintuitive। –

10

लेखक की तारीख एक प्रतिबद्ध पर रिबेस/चेरी पिकअप आदि पर संरक्षित है लेकिन प्रतिबद्ध तारीख बदल जाती है।

+0

कुछ प्रश्नों में काम करते हैं या तो चेरी-पिकिंग या रीबेजिंग नहीं होते हैं। वे एक और शाखा विलय की तरह दिखते हैं। – fossilet

+5

तो 'गिट प्रतिबद्ध - कमांड' करता है। – asmeurer

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