खैर, @Hasturkun से टिप्पणी का कहना है कि यह सब ईमानदार होना है, लेकिन आप 3 प्रश्न हैं:
1. यह अगर सब एक शाखा में करता है पहले से ही मूल माता पिता शाखा में मौजूद देखने के लिए जाँच करता है?
पुनरावृत्ति करने की कोशिश नहीं कर रहा है @ हास्टुरकन उद्धरण कहते हैं: "केवल उन शाखाओं की सूची बनाएं जिनकी युक्तियां निर्दिष्ट प्रतिबद्धता से पहुंच योग्य नहीं हैं"।
इस विशिष्ट मामले में ट्यूब/भूमिगत मानचित्र के रूप में काम करने के गिट पेड़ के बारे में सोचें। आप केवल एक नोड/स्टेशन से दूसरी तरफ यात्रा कर सकते हैं।
master : - - - -0
\
branchA : E - - - - F - - - - G
आप git branch --no-merge
और मैनुअल पेज परिभाषा लेने चलाने master
पर हैं? क्या आप master
के हेड से जी (branchA
की नोक) तक पहुंच सकते हैं, 0 प्रतिबद्ध कर सकते हैं? नहीं, आप नहीं कर सकते, इसलिए branchA
गैर-विलय वाली शाखा के रूप में सूचीबद्ध किया जाएगा।
अगर आप branchA
(जी प्रतिबद्ध करें) के HEAD से git branch --no-merge
चलाते हैं तो कैसे? master
एक गैर विलय वाली शाखा होगी? नहीं, इसे एक विलय वाली शाखा माना जाता है, यह समझने के लिए तुच्छ है कि पहले उदाहरण क्यों दिया गया।
इस उदाहरण के बारे में कैसे?
master
branchA
branchB
branchA (nothing)
branchB (nothing)
2. और क्या चेरी पसंद के बारे में:
master : - - - -0
\
branchA : E - - - - F - - - - G - - - Z
\ /
branchB : Y - - - W - - -
Git शाखा चल सभी 3 शाखाओं में --no-विलय कर के आउटपुट? कहने के लिए यह बहुत चालाक है कि एक 1 शाखा से प्रतिबद्ध पहले से ही किया गया है चेरी मूल माता पिता शाखा में वापस उठाया?
चेरी-की पसंद एक पूरी तरह से अलग commitId बनाते हैं, तो मैं केवल उन्हें इस्तेमाल जब मैं वास्तव में करने के लिए है। यह एक पूरी तरह से अलग प्रतिबद्ध बनाता है के बाद से, पेड़ अलग होगा:
अनुभव 1) का उपयोग करते हुए विलय
(master)$ touch empty && git add . && git commit -am "File Added"
(master)$ checkout branchA
(branchA)$ git branch --no-merged
master
(branchA)$ git merge master
(branchA)$ git branch --no-merged
// outputs nothing
अनुभव 2: इस प्रयोग मैं बस किया था पर
देखो, गुरु और branchA एक ही विचार करें) का उपयोग करना चेरी लेने
(master)$ touch empty && git add . && git commit -am "File Added"
(master)$ checkout branchA
(branchA)$ git branch --no-merged
master
(branchA)$ git cheery-pick <commitID from above>
(branchA)$ git branch --no-merged
master
3. और अगर एक शाखा पहले से ही विलय कर दिया गया और नए प्रतिबद्ध जोड़ दिया गया है कहीं भी होगी उस शाखा को लेने के रूप में विलय नहीं किया जा रहा है?
हां, ऊपर वर्णित सभी की वजह से।
क्या आपने मैन पेज पढ़ा है? यह कहता है "केवल उन शाखाओं की सूची बनाएं जिनकी युक्तियां निर्दिष्ट प्रतिबद्धता से पहुंच योग्य नहीं हैं" – Hasturkun