चूंकि गिट 1.6.3 git rebase
इस उद्देश्य के लिए --committer-date-is-author-date
है।
git rebase --committer-date-is-author-date
मूल जवाब: (: लेकिन देखना "संपादित करें 2" के नीचे स्थित संपादन)
स्थापित करने के लिए committer दिनांकों कोई आसान तरीका नहीं है। लेखक तारीखों को समायोजित करना आसान है (प्रतिबद्ध समय पर) --date
आपको प्रत्येक के रूप में निर्दिष्ट करने देगा।
पर्यावरण परिवर्तनीय GIT_COMMITTER_DATE
का उपयोग आपके द्वारा प्रतिबद्ध किए जाने पर एक अलग समय टिकट को मजबूर करने के लिए किया जा सकता है। नोट, हालांकि, आपको "रीप्ले" प्रत्येक प्रतिबद्धता के लिए इसे समायोजित करने की आवश्यकता होगी। परिणामी नई प्रतिबद्धता के पास एक अलग SHA-1 होगा (क्योंकि आपने इसमें कुछ बिट्स बदल दिए हैं, अर्थात्, कमिटर डेट फ़ील्ड), जिसका अर्थ है कि आपको अपने सभी वंशजों को फिर से करना होगा।
यह git filter-branch
करता है (पुराने, एसएचए -1 आईडी से मैपिंग को नए SHA-1 आईडी में मैपिंग रखने और अन्यथा माता-पिता को समायोजित करने के साथ-साथ कुछ, कई, या सभी के साथ किए गए परिवर्तनों को फिर से बनाते हैं) - प्रतिलिपि बनाई गई प्रतियां ताकि नए SHA-1 आईडी का "नया" डीएजी हर संभव तरीके से "पुराना" डीएजी से मेल खाता हो, यानि, SHA-1 आईडी को छोड़कर और आपके फ़िल्टर द्वारा किए गए किसी अन्य परिवर्तन को छोड़कर हर तरह से)।
दूसरे शब्दों में, ऐसा करने के लिए, आपको इतिहास को फिर से लिखने के लिए git filter-branch
का उपयोग करना होगा, इसका अर्थ यह है कि इसका अर्थ है। [संपादित करें: आप सचमुच यह git filter-branch
बिना कर सकते हैं, जैसे, git rebase -i
बजाय में यह करने से, लेकिन प्रभाव ही है।]
संपादित 2: के रूप में EIS एक टिप्पणी में बताया गया है (के बाद से हटा दिए गए), git rebase
है इस उद्देश्य के लिए --committer-date-is-author-date
। यह अभी भी वही इतिहास पुनर्लेखन करता है, लेकिन यह कच्चे git filter-branch
कमांड के साथ ऐसा करने से कहीं अधिक सुविधाजनक है।
http://stackoverflow.com/questions/454734/how-can-one-change-the-timestamp-of-an-old-commit-in-git को संबंधित? – Martin
हाँ लेकिन मैंने वास्तव में नई तिथियों को धक्का दिया। – kevingoos
लेकिन नई प्रतिबद्ध तिथियां वास्तविकता को दर्शाती हैं। आप सच छिपाना क्यों चाहते हैं? –