GitHub में git प्रतिबद्ध संदेश का संपादन


173

क्या GitHub.comप्रस्तुत करने के बाद, ऑनलाइन संदेश को प्रतिबद्ध करने का कोई तरीका है ?

कमांड लाइन से, कोई भी कर सकता है

git commit --amend -m "New commit message"

जैसा कि एक अन्य प्रश्न में सही ढंग से सुझाया गया है ।

कोशिश कर रहा है git pullऔर फिर git pushकाम किया है (किसी भी अन्य समय में हस्तक्षेप किए बिना)।

लेकिन क्या यह GitHubवेबसाइट के माध्यम से किया जा सकता है ?


कृपया @ DanGreen-Leipciger का उत्तर देखें , हालांकि यह स्वीकार नहीं किया गया है।
आरबीटी

जवाबों:


101

नहीं, यह सीधे संभव नहीं है। हर Git प्रतिबद्ध के लिए हैश की गणना भी प्रतिबद्ध संदेश के आधार पर की जाती है। जब आप प्रतिबद्ध संदेश बदलते हैं, तो आप प्रतिबद्ध हैश को बदलते हैं। यदि आप उस कमिट को पुश करना चाहते हैं, तो आपको उस पुश (git push -f) को बल देना होगा। लेकिन अगर पहले से ही किसी ने आपकी पुरानी कमिटमेंट को खींच लिया है और उस कमिट के आधार पर कोई काम शुरू किया है, तो उसे आपके नए कमिट पर अपना काम फिर से करना होगा।


मैं git पुल भी कर सकता था और फिर git पुश और यह काम किया। लेकिन जाहिरा तौर पर कोई ऑनलाइन तरीका नहीं है।
पीएनएस

5 अप्रैल, 2016 तक संभव नहीं है
बिग टीटी

और मुझे लगता है कि यह उच्च प्राथमिकता नहीं होगी, क्योंकि आप पहले से ही प्रकाशित शाखा के प्रतिबद्ध इतिहास को बदल देंगे, जो आपको कभी नहीं करना चाहिए (यदि आप 200% सुनिश्चित हैं, कि किसी और की स्थानीय मशीन पर यह शाखा नहीं है)।
दुनी

यह केवल आधा सच है। यह सच है, लेकिन केवल मान्यताओं के साथ। इसका जवाब @ डानग्रीन (नीचे) से मिला दिया जाए तो बेहतर होगा। यह "सीधे संभव" नहीं है, और निश्चित रूप से यह forewarnings के साथ आता है (यानी: "आपको 'ऐसा' कभी नहीं करना चाहिए ... [सिवाय इसके कि जब आप सुनिश्चित करें कि आप चाहते हैं]") - लेकिन बस यह नहीं कह रहा है संभव है, जब यह तकनीकी रूप से संभव है, एक अधूरा जवाब है।
बैन

1
ओपी ने पूछा, क्या जीथब वेबसाइट पर इसे ऑनलाइन करना संभव है। AFAIK यह अभी भी संभव नहीं है। तो मेरा उत्तर मान्य है, और डैन ग्रीन का उत्तर केवल स्थानीय स्तर पर इसे करने के तरीके को संभालता है, जीथबस वेबसाइट पर नहीं।
दुन्नी

145

इसे करने के लिए GitHub के निर्देश:

  1. कमांड लाइन पर, उस रिपॉजिटरी में नेविगेट करें जिसमें वह कमिटमेंट है जिसमें आप संशोधन करना चाहते हैं।
  2. प्रकार git commit --amend और एंटर दबाएं।
  3. अपने टेक्स्ट एडिटर में, कमिट मैसेज को एडिट करें और कमेट को सेव करें।
  4. git push --force example-branchपुरानी प्रतिबद्धताओं पर जोर देने के लिए कमांड का उपयोग करें ।

स्रोत: https://help.github.com/articles/changing-a-commit-message/


11
सावधान रहे! <Git प्रतिबद्ध --amend> & <Enter>, और <git प्रतिबद्ध --amend -m "नई प्रतिबद्ध संदेश"> का उपयोग करने के बीच का अंतर यह है कि 1 मामले में आप एक पाठ संपादक में अपना प्रतिबद्ध संदेश संपादित कर रहे हैं & 2 में अपने "नए कमिट मैसेज" के साथ इसे प्रतिस्थापित करें। यदि आप जोर जबरदस्ती करते हैं तो यह आपके रिमोट पर कमिट को बदल देगा। यह इस समस्या को हल नहीं करता है कि यदि आपकी टीम के अन्य लोगों ने पिछली प्रतिबद्धताओं को खींच लिया है तो आपके पास अलग-अलग मशीनों पर अलग-अलग इतिहास (अलग-अलग कमिट सहित) हैं। यदि आप जानते हैं कि किसी ने आपकी प्रतिबद्धता को नहीं खींचा तो यह सुरक्षित है। स्रोत डैन ने पोस्ट किया
TMin

7
git commit --amendहमेशा अस्तित्व में है। इसके अलावा आप गिट के बीच भ्रमित हो रहे हैं (जो एक ओपन सोर्स कमांड लाइन टूल है) और जीथब (जो एक ऑनलाइन सोर्स होस्टिंग प्रदान करने वाली कंपनी है)।
विनील

1
ओपी ने गिटहब के बारे में पूछा, और विशेष रूप से कमिट के बाद उनके सर्वर पर धकेल दिया गया। उन GitHub के निर्देश हैं जो ओपी के बारे में पूछते हैं।
डैन ग्रीन-लीपसीगर

3
@ DanGreen-Leipciger - हाँ, लेकिन यह वेबसाइट पर ही नहीं किया जाता है, यह कमांड लाइन का उपयोग करके किया जाता है। मुझे लगता है कि पीएनएस वेब इंटरफेस के भीतर से ऐसा करना चाहता था।
PhistucK

2
ओपी ने पूछा कि इसे विशेष रूप से गीथहब के साथ कैसे करना है, यह विशेष रूप से गिटहब के साथ कैसे करना है।
डैन ग्रीन-लीपसीगर

30

आपको git push -fयह मानने की ज़रूरत है कि इससे पहले किसी ने भी दूसरे कमिट को नहीं खींचा है। खबरदार, आप इतिहास बदल रहे हैं।


3

नहीं, क्योंकि प्रतिबद्ध संदेश SHA / हैश के साथ संबंधित है, और अगर हम इसे बदलते हैं तो SHA भी बदल जाता है। जिस तरह से मैंने इस्तेमाल किया वह उस कमेंट पर एक टिप्पणी बनाने के लिए है। मैं दूसरा रास्ता नहीं सोच सकता।


2

Intellij उपयोगकर्ताओं के लिए: यदि आप पिछले आवागमन के लिए इंटरैक्टिव तरीके से बदलाव करना चाहते हैं, जो Intellij में निम्नलिखित चरणों का पालन नहीं किया जाता है :

  • संस्करण नियंत्रण का चयन करें
  • लॉग का चयन करें
  • उस कमेंट पर राइट क्लिक करें जिसके लिए आप टिप्पणी में संशोधन करना चाहते हैं
  • Reword पर क्लिक करें
  • किया हुआ

आशा करता हूँ की ये काम करेगा


0

मैं उसी समस्या का सामना कर रहा था।

किसी विशेष शाखा के लिए अपने गिथब में देखें और आपको उस शाखा में पहले प्रतिबद्ध की आईडी का पता चल जाएगा। उस पर एक प्रतिक्षेप करें:

git rebase -i

संपादक खुल जाएगा। गीथब यूआई और ओपन एडिटर से अपने कमिट का ट्रैक रखें और मैसेजेस को बदलें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.