2013-05-03 2 views
5

मेरे सहयोगी ने हमारे गिटब भंडार में अपनी प्रतिबद्धता को धक्का दिया। दुर्भाग्यवश वह प्रणाली की तारीख वास्तविक समय से कुछ 20 दिन पहले तय है। तो सभी (4) उनके कामों में गलत तिथि है। मैं इन प्रतिबद्धताओं में तिथियों को बदलना चाहता हूं, लेकिन कुछ गलत काम पहले से ही इन गलत-दिनांकित प्रतिबद्धताओं के आधार पर किया जाता है।गिट में अपस्ट्रीम में प्रतिबद्ध तिथि कैसे बदलें?

मुझे यह SO प्रश्न मिला: How can one change the timestamp of an old commit in Git?, जो उत्तर दिखाता है कि मैं इसे कैसे कर सकता हूं, लेकिन मुझे नहीं लगता कि यह सुरक्षित है क्योंकि एसएचए को बदल दिया जाएगा, टीएच तिथि परिवर्तन का उपयोग किया जाएगा और मुझे यकीन नहीं है कि क्या होगा परिवर्तन जो मूल (गलत दिनांकित) पर आधारित थे।

तो, क्या तिथियों को बदलने और बदले गए कामों को धक्का देना सुरक्षित है? जिथब भंडार में वास्तव में क्या होगा? मुझे लगता है कि पूरी तरह से नया कॉमिटिस बनाया जाएगा और पुराने लोग अभी भी वहां होंगे ...

दूसरी तरफ अगर मैं गलत तरीके से काम करता हूं तो तह के रूप में, क्या खतरा है? अब तक मैंने देखा है कि github पर नेटवर्क ग्राफ़ काम नहीं करता है ...

+5

एसएचए हैश की गणना पूरी तारीख में की जाती है, जिसमें इसकी तिथि भी शामिल है। तो आप SHA हैश को बदले बिना प्रतिबद्धता तिथि नहीं बदल सकते हैं। – Andomar

+0

मुझे यह पता है, लेकिन पुष्टि के लिए धन्यवाद। –

उत्तर

1

आप उन कार्यों को बदल सकते हैं जिनके परिणामस्वरूप एक नया इतिहास होगा। आप गिटहब को git push --force के माध्यम से परिवर्तन स्वीकार कर सकते हैं जो इतिहास को बदल देगा। हालांकि ऐसा करने से रेपो से खींच रहे अन्य देवताओं के लिए परेशानी होगी (उन्हें शायद इसे फिर से हासिल करना होगा)।

इतिहास एसएचए पर आधारित नहीं है जब वे हुआ। यदि आप rebase करने के बाद की तारीखों को देखते हैं तो आपको बाद में 'बाद' होने वाले परिवर्तन दिखाई देंगे। तो जहां तक ​​रेपो या आपके कोड के साथ समस्याएं हैं, वहां कोई खतरा नहीं है।

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