दिलचस्प पोस्ट
Base64: अंतरिक्ष उपयोग में सबसे खराब संभव वृद्धि क्या है? JSON.stringify और JSON.parse के बीच अंतर फ्लोट और दशमलव डेटा प्रकार के बीच का अंतर जब उपयोगकर्ता jQuery के साथ div के नीचे स्क्रॉल करता है मैं पुनरावर्तक कैसे करूँ? जावा बाउंसिंग बॉल एकाधिक समूह द्वारा कई कार्यों को कॉलम के अनुसार लागू करें आईओएस के साथ उपकरणों: क्यों मेमोरी मॉनीटर आवंटन के साथ असहमत है? सी में एक फ़ंक्शन में पास किए गए एक पॉइंटर को मैं कैसे संशोधित करूं? जावास्क्रिप्ट के साथ एक आइफ्रेम स्क्रोल करना? PHP पीडीओ: अक्षरसेट, सेट नाम? शरीर पर सेट CSS3 ढाल पृष्ठभूमि खिंचाव नहीं है बल्कि इसके बजाय दोहराता है? सी # का उपयोग करते हुए मैं .NET में मौजूदा उपयोगकर्ता नाम कैसे प्राप्त करूं? लॉग 4 नेट: RollingFileAppender पर मैक्स बैकअप फाइल रोलिंग डेटीज़ के साथ सेट करें जावा: सूचित करें () बनाम सूचित करें (सभी) फिर से

गिट में मूल प्रतिबद्ध संपादित करें?

बाद में किए गए संदेश से संदेश बदलने के तरीके हैं:

git commit --amend # for the most recent commit git rebase --interactive master~2 # but requires *parent* 

आप सबसे पहले प्रतिबद्ध के प्रतिबद्ध संदेश कैसे बदल सकते हैं (जिसके पास कोई माता पिता नहीं है)?

वेब के समाधान से एकत्रित समाधान "गिट में मूल प्रतिबद्ध संपादित करें?"

यह मानते हुए कि आपके पास एक साफ काम के पेड़ है, आप निम्न कर सकते हैं।

 # checkout the root commit git checkout <sha1-of-root> # amend the commit git commit --amend # rebase all the other commits in master onto the amended root git rebase --onto HEAD HEAD master 

गिट संस्करण 1.7.12 के अनुसार , अब आप उपयोग कर सकते हैं

 git rebase -i --root 

Ecdpalma के जवाब पर विस्तार करने के लिए, अब आप --root को बताने के लिए --root विकल्प का उपयोग कर सकते हैं कि आप रूट / पहले कमिट को फिर से लिखना चाहते हैं:

 git rebase --interactive --root 

फिर मूल प्रतिबद्ध रीबेस टोडो सूची में दिखाई देगा, और आप इसे संपादित या संशोधित करने का चयन कर सकते हैं:

 reword <root commit sha> <original message> pick <other commit sha> <message> ... 

यह गिट --root डॉक्स (जोर खान) से --root की व्याख्या है:

रीबसेज सभी <branch> usstream <branch> से सीमित करने के बजाय, <branch> से पहुंच योग्य बनाते हैं यह आपको किसी शाखा पर रूट कमेटी को रिबेस करने की अनुमति देता है

इस समस्या से बचने का एक और तरीका यदि आपको पता है कि आप भविष्य में "पहले" प्रतिबद्धता के ऊपर रिबज़ कर रहे हैं, तो शुरुआत में एक खाली कमाने करना है:

 git commit --allow-empty -m "Initial commit" 

और उसके बाद ही "वास्तविक" कमाने करना शुरू कर सकते हैं, तो आप इसे आसानी से रीसेट कर सकते हैं कि sth जैसे git rebase -i HEAD^

आप git filter-branch उपयोग कर सकते हैं:

 cd test git init touch initial git add -A git commit -m "Initial commit" touch a git add -A git commit -m "a" touch b git add -A git commit -m "b" git log --> 8e6b49e... b 945e92a... a 72fc158... Initial commit git filter-branch --msg-filter \ "sed \"s|^Initial commit|New initial commit|g\"" -- --all git log --> c5988ea... b e0331fd... a 51995f1... New initial commit