कोई प्रतिबद्ध संदेश के साथ कमिट करें


108

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


6
अंत में, git commit -a --allow-empty-message -m ''अब एक संपादक भी नहीं खोला जाएगा। देखें नीचे मेरा उत्तर
VonC

2
विंडोज़ पर इस आदेश को git commit -a --allow-empty-message -m ''बनाता है के साथ प्रतिबद्ध संदेश प्रतिबद्ध " ''", तो यह बजाय इस आदेश का उपयोग करने के लिए बेहतर है: git commit -a --allow-empty-message -m ""
तव

जवाबों:


137

गिट को आम तौर पर एक गैर-खाली संदेश की आवश्यकता होती है क्योंकि एक सार्थक प्रतिबद्ध संदेश प्रदान करना अच्छे विकास अभ्यास और अच्छे भंडार प्रबंधन का हिस्सा है। कमिट मैसेज की पहली लाइन git के भीतर सभी जगह उपयोग की जाती है; अधिक के लिए, "ए नोट नोट गेटिट कमिट मैसेजेस" के बारे में पढ़ें ।

यदि आप cdअपने प्रोजेक्ट डायरेक्टरी में टर्मिनल.एप्प खोलते हैं , और git commit -am '', आप देखेंगे कि यह विफल हो जाता है क्योंकि खाली प्रतिबद्ध संदेश की अनुमति नहीं है। Git के नए संस्करणों में
--allow-empty-messageकमांडलाइन तर्क है, जिसमें Xcode के नवीनतम संस्करण के साथ शामिल git का संस्करण शामिल है। यह आपको खाली संदेश के साथ कमिट करने के लिए इस कमांड का उपयोग करने देगा:

git commit -a --allow-empty-message -m ''

--allow-empty-messageध्वज से पहले , आपको commit-treeप्लंबिंग कमांड का उपयोग करना था । आप इस आदेश को "रॉ गिट" अध्याय के अध्याय पुस्तक में उपयोग करने का एक उदाहरण देख सकते हैं ।


1
के नए संस्करण gitहै --allow-empty-messageकमांडलाइन तर्क। दस्तावेज़ यहाँ देखें । यह उल्लेख करता है कि आप प्लंबिंग कमांड का उपयोग करके उसी चीज़ को पूरा करने में सक्षम थे git-commit-tree
जेरेमी डब्ल्यू। शेरमैन

18
मुझे लगता है कि वाक्य "एक सार्थक प्रतिबद्ध संदेश प्रदान करना अच्छा विकास अभ्यास का हिस्सा है" सिर्फ गलत है - कोई यह कह सकता है कि सार्थक प्रतिबद्ध संदेश प्रदान करना अच्छा विकास अभ्यास का हिस्सा माना जाता है , जैसा कि कथन वैसे भी विभाजनकारी है - मैं एक के लिए कम भ्रम की स्थिति है कि कम जानकारी का मानना है कि कभी कभी होता है, खासकर जब से Git जाहिर भंडार करने के लिए वास्तविक परिवर्तन संग्रहीत करता है, और एक git diffइच्छुक पार्टी वास्तव में दिखा देंगे क्या , एक प्रतिबद्ध होता है मानव टाइप किए गए वर्णन पर निर्भर रहे बिना। मशीनें हमें जहां संभव हो श्रम से बचाएं।
एमएन

2
@ मै, मैं भी उन सभी दसियों हज़ारों अच्छे-अच्छे लिखित संदेशों के बारे में सोचने लगा, जो मैंने लिखे हैं, जिन्हें कभी किसी के साथ नहीं पढ़ा जाएगा। मेरे लिए अब इस आदत का मूल्य यह है कि यह मुझे उनका वर्णन करने के प्रयास में परिवर्तनों को देखने के लिए मजबूर करता है, और यह कभी-कभी मुझे नोटिस बग बनाता है। आप सही हैं, हालांकि। मैं कोड पर अधिक ध्यान देने और कम संदेश पर कम विचार करूंगा।
osa

7
Git का उपयोग अब कोड विकास के लिए नहीं किया जाता है। जब मैं एक GitHub विकी पृष्ठ या एक ओवरलेफ़ LaTeX दस्तावेज़ को अपडेट कर रहा हूं, तो आमतौर पर कहने के लिए कुछ भी नहीं है क्योंकि मैं प्रलेखन अद्यतन कर रहा हूं परिवर्तन के बारे में शब्दार्थ रूप से सार्थक सब कुछ अंतर में निहित है। मैंने वास्तव में खुद को प्रतिबद्ध संदेश के रूप में परिवर्तन के पाठ का उपयोग करते हुए पाया है: पूरी तरह से निरर्थक!
जिम पिवार्स्की

1
@amn, कभी-कभी का आउटपुट git diffस्व-व्याख्यात्मक नहीं होता है, तब भी जब कमिटर का मानना ​​है कि यह है।
20

26

और यदि आप इसके लिए एक उपनाम जोड़ते हैं तो यह और भी सही है?

git config --global alias.nccommit 'commit -a --allow-empty-message -m ""'

अब आप केवल एक nccommit करते हैं, क्योंकि कोई टिप्पणी नहीं है, और सब कुछ शुरू किया जाना चाहिए।


19

जब आप एक महत्वपूर्ण कोड अपडेट पर काम कर रहे हों, अगर आपको वास्तव में एक इंटरमीडिएट सेफपॉइंट की आवश्यकता है, तो आप बस यह कर सकते हैं:

git commit -am'.'

या इससे कम:

git commit -am.

और वह क्या करता है?
मछली पालन

संदेश के साथ एक प्रतिबद्ध जोड़ता है '।'
कमी

मैं इस पद्धति का उपयोग करता हूं जब मेरे पास शाब्दिक रूप से कोई याद नहीं होता है कि मैंने एक प्रतिबद्ध में क्या रखा है और diffयह सभी के लिए बहुत आलसी हूं ।
theTechRobo36414519

16

नोट: git1.8.3.2 (जुलाई 2013) से, निम्न आदेश ( जेरेमी डब्ल्यू शेरमन द्वारा ऊपर उल्लेख किया गया ) कोई संपादक नहीं खोलेगा:

git commit --allow-empty-message -m ''

देखें 25206778aac776fc6cc4887653fdae476c7a9b5a :

यदि कोई खाली संदेश -mgit प्रतिबद्ध के विकल्प के साथ निर्दिष्ट किया जाता है तो संपादक शुरू किया जाता है।
यह अप्रत्याशित और अनावश्यक है।
यदि उपयोगकर्ता ने निर्दिष्ट किया है तो जाँच के लिए संदेश स्ट्रिंग की लंबाई का उपयोग करने के बजाय, सीधे याद रखें कि क्या विकल्प -mदिया गया था।


git 2.9 (जून 2016) खाली संदेश व्यवहार में सुधार करता है:

एडम डिनवुडि ( ) द्वारा प्रतिबद्ध 178e814 (06 अप्रैल 2016) देखें । जेफ किंग ( ) द्वारा प्रतिबद्ध 27014cb (07 अप्रैल 2016) देखें । ( जूनियो सी हमानो द्वारा विलय - - कम से कम ०26०२६१ , २२ अप्रैल २०१६)me-and
peff
gitster

commit: द्वारा दिए गए खाली संदेश को नजरअंदाज न करें -m ''

  • " git commit --amend -m '' --allow-empty-message", भले ही यह अजीब लग रहा हो, किसी भी तरह का कोई संदेश नहीं देने के लिए प्रतिबद्ध को संशोधित करने का एक वैध अनुरोध है।
    की उपस्थिति की गलत धारणा के कारण-mकमांड लाइन पर , हमने लॉग इन को मूल कमिट से रखना समाप्त कर दिया।
  • " git commit -m "$msg" -F file" खारिज किया जाना चाहिए कि क्या $msgएक खाली स्ट्रिंग है या नहीं, लेकिन उसी बग के कारण, जब अस्वीकार नहीं किया गया था$msg
  • " git -c template=file -m "$msg"" $msgखाली होने पर भी टेम्पलेट को अनदेखा करना चाहिए , लेकिन यह नहीं किया और इसके बजाय टेम्पलेट फ़ाइल से सामग्री का उपयोग किया।

3

इसे पूरा करने के लिए आपको गिट की जरूरत नहीं है। एक बैश फ़ंक्शन का रचनात्मक उपयोग चाल को ठीक करेगा। यदि आप संदेशों की परवाह नहीं करते हैं, तो बस एक डिफ़ॉल्ट सेट करें और इसे भूल जाएं।

function gitcom() {
  git commit -m "my default commit message"
}

यदि आप वास्तव में रोमांच महसूस कर रहे थे तो आप एक आदेश के साथ जोड़ सकते हैं, प्रतिबद्ध कर सकते हैं और धक्का दे सकते हैं

function gitzap() {
  git add . && git commit -m "whatevs" && git push $1 $2
}

जिसे आप तब चलाएंगे

gitzap origin master

आप और भी गहरे हो सकते हैं और अपने आप को कुछ कीस्ट्रोक्स से बचाने के लिए parse_git_branch का उपयोग कर सकते हैं, या "मूल" और "मास्टर" का एक सामान्य डिफ़ॉल्ट सेट कर सकते हैं।


1
क्या आप इस बैश फ़ंक्शन को सेट करने के बारे में कुछ और जानकारी प्रदान कर सकते हैं?
11

1
मान लें कि आप OSX या Linux पर हैं, तो आप इन कार्यों को कॉपी कर सकते हैं और उन्हें अपने .profile (अपने होम फ़ोल्डर में, यदि नहीं तो बना सकते हैं) में रखें। एक नई कंसोल विंडो खोलें और वे कमांड आपके लिए उपलब्ध होंगे। इन फ़ाइलों में किए गए किसी भी बदलाव के लिए आपको बैश सत्र को ताज़ा करने की आवश्यकता होगी, ताकि आप उस फ़ाइल में निम्नलिखित उपनाम जोड़कर चीजों को गति दे सकें: उपनाम उपनाम = "सबल ~ / .profile" # उप मेरे पाठ संपादक हैं, अपने स्वयं के साथ स्थानापन्न। उर्फ एर = "स्रोत ~ / .profile" # यह अब रीसेट हो जाएगा जब आप शॉर्टकट जोड़ना चाहते हैं तो आप "ईए" टाइप करें (उपनाम संपादित करें) और एर को ताज़ा करने के लिए
स्टीवन गार्सिया

2
आप स्क्रिप्ट कहा जाता है तो git-comऔर git-zap: (एक्सटेंशन के बिना) और रखा उन्हें कहीं Git उन्हें (अपने पथ में यानी कहीं) प्राप्त कर सकते हैं, नियमित रूप से Git आदेशों की तरह व्यवहार करता है Git उन्हें और आप उन्हें इस तरह आह्वान कर सकते हैं git com,git zap origin master
Manuzor

1
कोलाहल में यह function gitcom {या तो gitcom() {TMK, ठीक है?

2

Git को कमेंट करने के लिए एक कमिट की आवश्यकता होती है, अन्यथा यह कमिट स्वीकार नहीं करता है।

आप अपने डिफॉल्ट कमिट मैसेज के रूप में डिफॉल्ट टेम्प्लेट को git के साथ कॉन्फ़िगर कर सकते हैं या git में --allow-खाली-मैसेज फ्लैग को देख सकते हैं। मुझे लगता है कि (100% निश्चित नहीं है) आप खाली प्रतिबद्ध संदेशों को स्वीकार करने के लिए git को फिर से कॉन्फ़िगर कर सकते हैं (जो इतना अच्छा विचार नहीं है)। आम तौर पर प्रत्येक प्रतिबद्ध को थोड़ा सा काम होना चाहिए जो आपके संदेश द्वारा वर्णित है।


1
निश्चित नहीं है कि यह जवाब मतदान से कम क्यों था। मैं सहमत हूं कि Git को खाली प्रतिबद्ध संदेश स्वीकार करने के लिए मजबूर करना, या 'सेव' जैसे संदेश का उपयोग करना एक बुरा विचार है। इसे लड़ना बंद करो, और बस लानत उपकरण सीखो।
जीनजेन थॉमस

1

मुझे सबसे सरल उपाय मिला:

git commit -am'save'

यह सब है, आप git कमिट मैसेज स्टफ के आसपास काम करेंगे।

आप इसे और अधिक सरल बनाने के लिए एक बैश या अन्य सामान की सराहना भी कर सकते हैं।

हमारी टीम के सदस्य हमेशा उन संदेशों को लिखते हैं, लेकिन लगभग कोई भी उन संदेशों को फिर से नहीं देखेगा।

प्रतिबद्ध संदेश कम से कम हमारी टीम में एक समय की मार है, इसलिए हम इसे अनदेखा करते हैं।


1

मेरी निजी परियोजना में निम्नलिखित विन्यास हैं:

git config alias.auto 'commit -a -m "changes made from [device name]"'

इस तरह, जब मैं जल्दी में होता हूं तो करता हूं

git auto
git push

और कम से कम मुझे पता है कि किस डिवाइस से कमिट किया गया था।


-5

प्रतिबद्ध संदेश एक सर्वोत्तम अभ्यास है जिसका हर समय पालन किया जाना चाहिए। जब तक आप केवल डेवलपर नहीं हैं और यह जल्द ही किसी भी समय बदलने वाला नहीं है।

git commit -a -m 'asdfasdfadsfsdf'

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