2012-07-22 12 views
29

मैंने बेवकूफ तरीके से गिटहब को एक बहुत गड़बड़ कर नाम के साथ एक प्रतिबद्धता धक्का दिया। मैं इसे कैसे बदलूं?आप गिटहब को धक्का देने वाले गिट प्रतिबद्धता का नाम कैसे बदलते हैं?

क्या git commit --amend अभी भी पहले से ही प्रतिबद्ध प्रतिबद्धता के लिए काम करता है?

+0

'गिट प्रतिबद्ध - कमांड' का उपयोग करें 'गिट पुश --force'' के बाद। – vanza

+0

मैं 'गिट पुश --force' की अनुशंसा नहीं करता। आप स्पष्ट होना चाहते हैं और केवल बल देना चाहते हैं कि आपको मजबूर होना जरूरी है। उदाहरण के लिए: 'गिट पुश - फोर्स मूल विशिष्ट शाखा'। आप बल के छोटे रूप '-f' का भी उपयोग कर सकते हैं। लघु रूपों को एक विकल्प के रूप में भी साथ जोड़ा जा सकता है। उदाहरण के लिए। 'गिट पुश -फ मूल माइब्रैंच' –

उत्तर

50
git commit --amend 

जो अपने संपादक लाएगा, या

git commit --amend -m "Your new message here" 

जो आप कमांड लाइन पर नया संदेश निर्दिष्ट करने के लिए अनुमति देगा। इसके अलावा संभव है, लेकिन और अधिक उपयोगी है यदि आप अन्य प्रतिबद्ध है

git rebase -i HEAD^ 
# then replace 'pick' with 'r' or 'reword' and save, editor should pop up again to edit the msg 

reword लिए क्योंकि इस प्रतिबद्ध सामग्री के परिवर्तन के कारण एक नया SHA1 है, तो आपको नया संदर्भ धक्का के लिए मजबूर करने की आवश्यकता होगी। बल की आवश्यकता है क्योंकि यह पिछले प्रतिबद्धता को भूलने के लिए गिट को बताता है। यह एक सुरक्षा उपाय है।

git push origin your-branch-name -f 
+3

कुछ ध्यान में रखना, अगर आप एक बड़ी परियोजना पर काम कर रहे हैं, जहां कोई व्यक्ति पहले से ही उस प्रतिबद्धता की जांच कर चुका है जिसे आप बदल रहे हैं, तो उसके ऊपर उनका काम विलय करना बहुत मुश्किल हो जाता है में –

+1

यदि आप सामान का नाम बदल रहे हैं, तो यह वास्तव में मामूली है। उन्हें बस इतना करना है कि 'गिट फ़ेच' और 'गिट रिबेस उत्पत्ति/मास्टर' मानते हैं कि वे मास्टर पर काम कर रहे हैं। कोई टकराव नहीं हुआ क्योंकि कोई स्नैपशॉट बदल नहीं गया था। –

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