मैं एक नया commit
कैसे बना सकता हूं और फ़ाइलों में कोई बदलाव नहीं किए जाने पर एक नया संदेश बना सकता हूं?कोई बदलाव और नया संदेश कैसे प्रतिबद्ध करें?
क्या यह संभव नहीं है क्योंकि प्रतिबद्धता कोड (SHA?) समान होगा?
मैं एक नया commit
कैसे बना सकता हूं और फ़ाइलों में कोई बदलाव नहीं किए जाने पर एक नया संदेश बना सकता हूं?कोई बदलाव और नया संदेश कैसे प्रतिबद्ध करें?
क्या यह संभव नहीं है क्योंकि प्रतिबद्धता कोड (SHA?) समान होगा?
ऐसा करने का शायद ही कोई अच्छा कारण है, लेकिन खाली संदेश के लिए --allow-empty-message
के विपरीत, पैरामीटर --allow-empty
खाली है। आप git help commit
टाइप करके या the online documentation पर जाकर और भी पढ़ सकते हैं।
जबकि पेड़ ऑब्जेक्ट (जिसमें स्वयं का हैश है) समान होगा, प्रतिबद्धता वास्तव में एक अलग हैश होगा, क्योंकि संभवतः यह एक अलग टाइमस्टैम्प और संदेश होगा, और निश्चित रूप से एक अलग माता-पिता प्रतिबद्ध होगा। उन तीनों कारकों को git
के ऑब्जेक्ट हैश एल्गोरिदम में एकीकृत किया गया है।
वहाँ कुछ कारणों से कर रहे हैं आप एक खाली प्रतिबद्ध (टिप्पणियों में से कुछ को शामिल) चाहते हो सकता है: (DavidNeiss के माध्यम से) कथन या दस्तावेज जोड़ने के लिए
git
आदेशों का परीक्षण करने के लिए (Vaelus के माध्यम से)।gitolite
(Tatsh के माध्यम से) हटाए गए एक नंगे भंडार को फिर से बनाने के लिए।अन्य रणनीतियों में शामिल हैं:
git notes
एक मौजूदा अपरिवर्तनीय प्रतिबद्धता के शीर्ष पर एक परिवर्तनीय नोट को जोड़ने के लिए।मैंने गिट प्रवाह [शाखा मॉडल] (http://nvie.com/posts/a-sccessful-git-branching-model/) का पालन करना शुरू कर दिया है। जब आप 'देव' शाखा फॉर्म 'मास्टर' बनाते हैं और फिर 'देव' से तत्काल 'feat' शाखा बनाते हैं, तो' feat' शाखा 'मास्टर' शाखा से आती है क्योंकि 'देव' पर कोई विशिष्ट प्रतिबद्धता नहीं होती है शाखा जो 'feat' शाखा से आता है। जब आप पहली बार 'देव' शाखा बनाते हैं तो एक खाली प्रतिबद्धता 'देव' शाखा को 'मास्टर' से स्वतंत्र अपनी अनिश्चित काल तक चलने वाली शाखा के रूप में स्थापित करने में मदद करती है। आम तौर पर जब आप परतों के रूप में शाखाओं का उपयोग करते हैं, और एक ही प्रतिबद्धता से दो परतें बनाते हैं तो –
एक और कारण: यदि आप धक्का देने से पहले अपने प्रतिबद्ध संदेश से कुछ महत्व छोड़ देते हैं, तो आप रिमोट नहीं करते हैं तो आप 'प्रतिबद्ध - कमांड' नहीं कर सकते बल धक्का देने की अनुमति दें। इस तरह आप डेवलपर्स को पिछले प्रतिबद्धता के साथ एक महत्वपूर्ण संदेश देखने की अनुमति दे सकते हैं। –
मैं ऐसा करना चाहता हूं क्योंकि मैंने एक प्रतिबद्धता को धक्का दिया, लेकिन प्रतिबद्ध संदेश में कुछ उल्लेख करना भूल गया। हमारे प्रतिबद्ध संदेश मुद्दे ट्रैकिंग और निरंतर एकीकरण सॉफ्टवेयर के साथ एकीकृत होते हैं और प्रतिबद्ध संदेश की सामग्री उन अनुप्रयोगों को प्रभावित करती है। क्या कोई बेहतर तरीका है? यह मेरे मामले में सबसे अच्छा समाधान की तरह लगता है। एकमात्र चीज जिसे मैं कल्पना कर सकता हूं वह किसी भी तरह पिछली प्रतिबद्धता को वापस करने में सक्षम होगा। – sytech
यदि मैं आपको सही समझता हूं, तो आप एक खाली प्रतिबद्ध बनाना चाहते हैं। उस मामले में आप की जरूरत:
git commit --allow-empty
हो सकता है कि एक और अधिक समझदार विकल्प के रूप में, आप एक एनोटेट टैग (एक नाम के एक संदेश के साथ प्रतिबद्ध) बना सकते हैं। git tag -a
विकल्प देखें।
यदि आप gitversion जैसे सिस्टम का उपयोग कर रहे हैं, तो इस तरह की प्रतिबद्धता करने के लिए यह बहुत समझदारी है। आपके पास एक प्रतिबद्धता हो सकती है जो विशेष रूप से एक + सेमेवर का उपयोग करके प्रमुख संस्करण को बंप करने के लिए है: प्रमुख टिप्पणी।
खाली संदेश
git commit --allow-empty -m "Empty test commit"
खाली एक खाली संदेश
git commit --allow-empty --allow-empty-message
कोड खुद के लिए की तुलना में नोट्स के लिए अधिक से प्रतिबद्ध के साथ करते हैं। –
जो भी आप पूछ रहे हैं उसे करने के बजाय, इसके बजाय 'गिट नोट्स' का उपयोग करें। – wjl
@iight अगर आपने कहीं भी अपना कोड नहीं धक्का दिया है, तो 'गिट प्रतिबद्ध --amend' पर भी विचार करें। यह आपको वापस प्रतिबद्ध स्क्रीन पर ले जाएगा जहां आप अपना संदेश संपादित कर सकते हैं, और यदि आपने उन्हें मंचित किया है तो प्रतिबद्ध में अतिरिक्त फ़ाइलें जोड़ें। ध्यान रखें कि, एक रिबेस की तरह, इससे आपकी मूल प्रतिबद्धता अप्रचलित हो जाएगी और इससे आपकी पुरानी प्रतिबद्धता को समाप्त करने वाले किसी भी व्यक्ति के लिए एक बुरा विलय सिरदर्द हो सकता है। –