विलय की त्रुटियों की तरह, या त्रुटियों को पुन: उत्पन्न करें। क्या इसमें एक अद्वितीय त्रुटि कोड है?
जवाबों:
मैंने असफल होने के लिए एक परीक्षा निर्धारित की। मेरे पास बस यही है:
$ git merge newbranch
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.
$ echo $?
1
0अपेक्षा के अनुसार सही तरीके से विलय होने पर रिटर्न मिलता है।
&&; इस प्रकार उनके परीक्षण कार्यान्वित होते हैं।
git rebaseऐसा ही व्यवहार है?
संक्षेप में, नहीं। आप त्रुटियों के लिए निकास कोड 1 और सफलता के लिए 0 देखने जा रहे हैं।
स्रोत की त्वरित पकड़ से, कुछ विशिष्ट 127 और 128 उनके विशिष्ट उद्देश्यों के लिए अपेक्षित हैं (कमांड नहीं मिली, पहले से रिपोर्ट की गई त्रुटियां), और कुछ स्थानों पर कुछ असामान्य कोड, लेकिन मिल त्रुटियों के चलाने के लिए, यह है सभी exit(1)।
manविवरण के लिए उनके पृष्ठ देखें।
git statusनॉन-गिट रेपो पर चल रहा है 128, 1 नहीं, जो जल्दी से यह निर्धारित करने में सहायक है कि क्या कोई गिट रेपो मौजूद है या नहीं।
त्रुटि 128, गिट से कोई त्रुटि संदेश के साथ, "अनपेक्षित समस्या" के लिए कैच-ऑल हो सकता है।
मैं इसे उन ऑपरेशनों पर प्राप्त कर रहा था, git checkout -- myfileजिन्हें एक अलग उपयोगकर्ता द्वारा .git (जैसे " " संशोधित फ़ाइल को वापस करने के लिए) को संशोधित करने की आवश्यकता थी । (मेरे मामले में " chmod -R og+w .git" इसे तय किया; स्वाभाविक रूप से, ऐसा न करें जब तक कि आप अपने मामले के लिए सुरक्षा निहितार्थ नहीं समझते!)
git push --delete origin a_remote_tag_name
यदि टैग git संस्करण का उपयोग नहीं करता है तो यह 256 रिटर्न देता है 1.8.3.1
यह अच्छा होगा कि प्रत्येक कमांड द्वारा लौटाए गए विशिष्ट रिटर्न कोड की समेकित सूची हो और वे क्या संकेत दें। यह रिटर्न कोड अर्थ बदलने से रोकने में भी मदद कर सकता है (जो स्वचालन स्क्रिप्ट पर भरोसा कर सकता है)।
Git 2.24 (Q4 2019) यह बताता है कि gitकमांड्स कोड कैसे लौटाते हैं।
देखें प्रतिबद्ध 50094ca , c1a6f21 प्रतिबद्ध , 854b5cb प्रतिबद्ध , प्रतिबद्ध dd2b6b6 , प्रतिबद्ध 6bd26f5 , c6ec6da प्रतिबद्ध , f2e2fa8 प्रतिबद्ध , प्रतिबद्ध 460609c , प्रतिबद्ध 92014b6 , प्रतिबद्ध 0ab74e9 , प्रतिबद्ध cb46c40 , प्रतिबद्ध b562a54 (27 अगस्त 2019), और प्रतिबद्ध fe49814 (20 अगस्त 2019) डेंटन लियूDenton-L द्वारा ( ) ।
(द्वारा विलय Junio सी Hamano - gitster- में प्रतिबद्ध 1c6fc94 , 30 सितं, 2019)
t4014: git कमांड के रिटर्न कोड खोना बंद करें
वर्तमान में, दो तरीके हैं जहां गिट कमांड के रिटर्न कोड खो जाते हैं।
पहला तरीका तब है जब एक कमांड एक पाइप के अपस्ट्रीम में है। एक पाइप में, अंतिम कमांड के केवल रिटर्न कोड का उपयोग किया जाता है। इस प्रकार, अन्य सभी आदेशों में उनके रिटर्न कोड नकाबपोश होंगे।
रीराइट पाइप ताकि ऊपर की ओर कोई Git कमांड न हो।दूसरा तरीका यह है कि जब कोई कमांड नॉन-असाइनमेंट सबस्क्रिप्शन में हो ।
रिटर्न कोड आसपास के कमांड के पक्ष में खो जाएगा।
इसके उदाहरण ऐसे देखें कि Git किसी फ़ाइल में आउटपुट को आदेशित करता है और आस-पास के कमांड केवल गैर- Git कमांड के साथ सब-कॉल को कॉल करता है।
इसलिए लिखने के बजाय:
git cat-file commit rebuild-1 | grep "^Side .* with .* backslash-n"
प्रकार:
git cat-file commit rebuild-1 >actual &&
grep "^Side .* with .* backslash-n" actual
git merge(१..org.४ के लिए डॉक्स। kernel.org/pub/software/scm/git/docs/v1.7.4/git-merge.html ) केवल एक स्थान पर रिटर्न स्टेटस का उल्लेख करते हैं (यदि आप उपयोग करते हैं -) -ff-only "और यह फास्ट-फ़ॉरवर्ड कमिट नहीं कर सकता, यह नॉन-ज़ीरो लौटाता है - यह स्पष्ट रूप से यह नहीं कहता है कि यदि यह सभी काम करता है या यदि कोई मर्ज संघर्ष था, तो वापस आ जाता है।