गिट शाखा को पुन: स्थापित करते समय टाइमस्टैम्प बदलें


97

मैंने एक शाखा में कमिट्स को पुनर्गठित किया है इससे पहले कि इसे सार्वजनिक किया जाए क्योंकि कमिट्स के टाइमस्टैम्प को एक मिश्रित क्रम में होना चाहिए। मैं नहीं बल्कि उन सभी के बीच में केवल सेकंड के साथ आज होगा।

जाहिर है कि ये समय टिकटें सही भी नहीं होंगी, लेकिन चूंकि यही वह समय है जब चीजें सार्वजनिक हो जाती हैं, तो मुझे लगता है कि एक मिश्रित इतिहास, समय के लिहाज से बेहतर है।

तो मैं कैसे पुनरावृत्ति करते समय नए टाइमस्टैम्प बनाने के लिए बताऊँ?

जवाबों:


134
git rebase --ignore-date

2
मैंने इसे पोस्ट करने से पहले कोशिश की है .. सिवाय इसके कि मैंने इसे अंतःक्रियात्मक रूप से नहीं किया है, शायद यह चाल है? इसके अलावा, क्या आपने --committer-date-is-author-date alias? हो सकता है - theignore-date को बाद के संस्करण में पेश किया गया था, मुझे कोई पता नहीं है।
माइकल क्रेलिन - हैकर

2
हां, अगर गैर-अंतःक्रियात्मक रूप से किया जाए तो यह काम करता है। लेकिन तब - जैसा कि हमेशा रिबास के साथ होता है - बहुत पहले प्रतिबद्ध प्रभावित नहीं होते हैं।
तारसियस

2
@ MichaelKrelin-hacker: प्रलेखन के अनुसार, --ignore-date इन झंडों को आसानी से
टिम

4
@Tim रूट कमिट में माता-पिता नहीं होते हैं, और जब मैंने यह सवाल पूछा तो मैं भी उस कमिट की तारीख बदलना चाहता था। अब हमारे पास है --root, जो इसे संभव बनाता है।
तारसियस

3
Incompatible with the --interactive option. डॉक्स देखें
Vlastimil Ovčáčík

28

मेरे मामले में रिबासिंग ने टाइमस्टैम्प को कमिटेट वैल्यू में बदल दिया, इसलिए गिटवेब में महीनों पुराने कमिट्स का एक गुच्छा 4 दिन पुराना दिखा। मैंने सही तारीख के साथ आखिरी कमिटमेंट पाया और किया:

$ git rebase --committer-date-is-author-date SHA

39
नहीं यह नहीं। वास्तव में, यह बिल्कुल विपरीत है। डॉक्स से git rebase: " इन झंडों git amको आसानी से बगावत करने की तारीखों को बदलने के लिए पारित किया जाता है "। इसमें git amकहा गया है: --committer-date-is-author-date" [...] उपयोगकर्ता को लेखक की तारीख के समान मूल्य का उपयोग करके कमेंट तारीख के बारे में झूठ बोलने की अनुमति देता है " जबकि --ignore-date" [...] उपयोगकर्ता को उसी मूल्य का उपयोग करके लेखक की तारीख के बारे में झूठ बोलने की अनुमति देता है। कमिट डेट के रूप में "।
एनरिको कैंपिडोग्लियो

9

इसके निम्नलिखित तरीके हैं

  1. सामान्य छूट

    git rebase --ignore-date
    
  2. परस्पर विद्रोह

    git rebase -i master
    git commit --amend --date=now
    git push origin <branch> -f
    
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.