सवाल गिट प्रतिबद्धता संदेश के साथ प्रतिबद्ध है


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


81
2018-06-02 17:47


मूल


आखिरकार, git commit -a --allow-empty-message -m '' अब एक संपादक भी नहीं खोलेंगे। देख नीचे मेरा जवाब - VonC
विंडोज पर यह आदेश git commit -a --allow-empty-message -m '' प्रतिबद्ध संदेश के साथ प्रतिबद्ध बनाता है "''", इसलिए इसके बजाय इस कमांड का उपयोग करना बेहतर है: git commit -a --allow-empty-message -m ""। - tav


जवाब:


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

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

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

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


105
2018-06-02 17:52



नहीं, git-commit अभी भी कहते हैं "खाली प्रतिबद्ध संदेश के कारण प्रतिबद्धता छोड़ना।" - Josh Lee
के नए संस्करण git है --allow-empty-message कमांडलाइन तर्क। दस्तावेज देखें यहाँ। यह उल्लेख करता है कि आप प्लंबिंग कमांड का उपयोग करके एक ही चीज़ को पूरा करने में सक्षम होते थे git-commit-tree। - Jeremy W. Sherman
मुझे लगता है कि वाक्य "एक सार्थक प्रतिबद्ध संदेश प्रदान करता है है अच्छे विकास अभ्यास का हिस्सा "सिर्फ गलत है - कोई कह सकता है कि एक सार्थक प्रतिबद्ध संदेश प्रदान करना माना जाता है अच्छे विकास अभ्यास का हिस्सा, क्योंकि कथन किसी भी तरह से विभाजित है - मैं एक के लिए मानता हूं कि कम जानकारी कभी-कभी कम भ्रम की ओर ले जाती है, खासकर जब से गिट स्पष्ट रूप से भंडार में वास्तविक परिवर्तनों को संग्रहित करती है, और git diff दिलचस्पी पार्टी बिल्कुल दिखाएगा क्या मानव लिखित विवरणों पर निर्भर किए बिना एक प्रतिबद्धता शामिल है। जहां संभव हो वहां मशीनों को हमें श्रम से बचा लेना चाहिए। - amn
@ एएमएन, मैंने अभी भी उन हजारों अच्छी तरह लिखित प्रतिबद्ध संदेशों के बारे में सोचना शुरू कर दिया है जो मैंने लिखा है जो कभी भी किसी के द्वारा कभी नहीं पढ़ा जाएगा। मेरे लिए अब इस आदत का मूल्य यह है कि यह मुझे उनको वर्णन करने के प्रयास में बदलावों को देखने के लिए मजबूर करता है, और यह कभी-कभी मुझे बग नोटिस करता है। आप सही हैं, यद्यपि। मैं कोड पर अधिक ध्यान देने और प्रतिबद्ध संदेश को कम करने पर विचार करूंगा। - osa
गिट का उपयोग अभी कोड विकास के लिए नहीं किया जाता है। जब मैं गिटहब विकी पेज या ओवरलीफ लाटेक्स दस्तावेज़ अपडेट कर रहा हूं, तो आमतौर पर कुछ भी कहना नहीं है क्योंकि मैं अपडेट कर रहा हूं प्रलेखन। बदलाव के बारे में अर्थपूर्ण रूप से अर्थपूर्ण सब कुछ diff में निहित है। मैंने वास्तव में खुद को प्रतिबद्ध संदेश के रूप में परिवर्तन के पाठ का उपयोग करके पाया है: पूरी तरह से अनावश्यक! - Jim Pivarski


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

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

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


19
2017-07-10 06:37





एक महत्वपूर्ण कोड अपडेट पर काम करते समय, यदि आपको वास्तव में एक मध्यवर्ती सुरक्षित बिंदु की आवश्यकता है तो आप बस ऐसा कर सकते हैं:

git commit -am'.'

या छोटा:

git commit -am.

14
2018-04-08 14:07





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

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

देख 25206778aac776fc6cc4887653fdae476c7a9b5a प्रतिबद्ध करें:

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


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

देख 178e814 प्रतिबद्ध करें (06 अप्रैल 2016) द्वारा एडम Dinwoodie (me-and)
देख 27014 सीबी प्रतिबद्ध करें (07 अप्रैल 2016) द्वारा जेफ किंग (peff)
(द्वारा विलय जूनियो सी हमानो - gitster - में 070 9 261 प्रतिबद्ध करें22 अप्रैल 2016) 

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 खाली है, लेकिन ऐसा नहीं किया और इसके बजाय टेम्पलेट फ़ाइल से सामग्री का उपयोग किया।

6
2018-06-28 13:10





मुझे सबसे आसान समाधान मिला:

git commit -am'save'

यह सब कुछ है, आप गिट प्रतिबद्ध संदेश सामग्री के आसपास काम करेंगे।

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

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

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


2
2018-03-13 08:46





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

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 का उपयोग कर सकते हैं, या "मूल" और "मास्टर" का एक सामान्य डिफ़ॉल्ट सेट कर सकते हैं।


2
2018-04-07 09:45



क्या आप इस बैश फ़ंक्शन को सेट अप करने के बारे में कुछ और विवरण प्रदान कर सकते हैं? - adaam
मान लें कि आप ओएसएक्स या लिनक्स पर हैं, आप इन कार्यों की प्रतिलिपि बना सकते हैं और उन्हें अपने .profile में रख सकते हैं (यदि आपके घर फ़ोल्डर में होना चाहिए, तो नहीं तो इसे बनाएं)। एक नई कंसोल विंडो खोलें और वे आदेश आपके लिए उपलब्ध होंगे। इन फ़ाइलों में किए गए किसी भी बदलाव के लिए आपको बैश सत्र को रीफ्रेश करने की आवश्यकता होगी ताकि आप उस फ़ाइल में निम्नलिखित उपनाम जोड़कर चीजों को गति दे सकें: alias ea = "subl ~ / .profile" # subl मेरा टेक्स्ट एडिटर है, अपने आप के साथ विकल्प alias er = "source ~ / .profile" # यह अब रीसेट हो जाएगा जब आप शॉर्टकट जोड़ना चाहते हैं तो आप बस "ea" टाइप करें (उपनाम संपादित करें) और er को रीफ्रेश करने के लिए - Steven Garcia
यदि आपने स्क्रिप्ट को बुलाया है git-com तथा git-zap (एक्सटेंशन के बिना) और उन्हें कहीं भी गिट रखा गया है (यानी आपके पैथ में कहीं भी), गिट उन्हें नियमित गिट कमांड की तरह व्यवहार करता है और आप उन्हें इस तरह से बुला सकते हैं: git com, git zap origin master - Manuzor


गिट को एक टिप्पणी करने की प्रतिबद्धता की आवश्यकता होती है, अन्यथा यह प्रतिबद्धता स्वीकार नहीं करेगा।

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


0
2018-06-02 18:05



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


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

git commit -a -m 'asdfasdfadsfsdf'

-2
2018-05-24 04:00



यह एक मजाक है। लेकिन थोड़ा सा काम करने के लिए आपको Heroku में परिवर्तन जमा करना है (उदाहरण के लिए), यह एकल डेवलपर उदाहरण में ठीक है। - coloradoblue