दिलचस्प पोस्ट
विज़ुअल स्टूडियो सेटअप प्रोजेक्ट में इंस्टॉल होने के बाद मैं एक आवेदन कैसे लाऊं? एंड्रॉइड – एक प्रगति बर्र को क्षैतिज के बजाय एक लंबवत पट्टी बनाने के लिए सेट करें? एसवीजी तत्व के साथ काम नहीं कर रहा है jquery? Serializing ऑब्जेक्ट के बजाय पार्सलेबल का उपयोग करने का लाभ जावा में हाइबरनेट का उपयोग करके डेटाबेस से कंबलबॉक्स को भरना MySQL में दो तालिकाओं के बीच मतभेदों की तुलना करें कैसे एक सी समारोह में स्विफ्ट तार की एक सरणी को पार करने के लिए एक char ** पैरामीटर ले दूरस्थ मशीन पर एक खोल स्क्रिप्ट को चलाने के लिए SSH का उपयोग कैसे करें? "सही" JSON दिनांक प्रारूप आपकी पसंदीदा PHP तैनाती रणनीति क्या है? PHP DOMDocument त्रुटियों / चेतावनियां html5-tags पर जावास्क्रिप्ट में शास्त्रीय विरासत बनाम प्रोटियपाल विरासत एसक्यूएल सर्वर डाटाबेस कॉलम में एक्सएमएल डाटा को खराब करने का सबसे अच्छा तरीका TypeError: str बफर इंटरफ़ेस का समर्थन नहीं करता कैसे एक Redux अनुप्रयोग में कोड बंटवारे के लिए reducers गतिशील लोड करने के लिए?

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

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

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

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

Solutions Collecting From Web of "गिट में मूल प्रतिबद्ध संपादित करें?"

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

 # 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