2009-06-24 21 views
5

में वर्णित अनुसार काम नहीं करता है प्रलेखन कहता है: "चूंकि गिट-चेरी प्रतिबद्ध आईडी (sha1) की बजाय परिवर्तन की तुलना करता है, तो आप यह पता लगाने के लिए गिट-चेरी का उपयोग कर सकते हैं कि क्या आपने स्थानीय रूप से प्रतिबद्ध किया है एक अलग प्रतिबद्ध आईडी के तहत लागू किया गया है। "गिट चेरी भ्रम - दस्तावेज़

चलो देखते हैं:

$ git cherry master release-1.1.0 | head -1 
- 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 
$ git show 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 
... 
(cherry picked from commit 409c61b3304373a73c787fdf9c08cc338934b74d) 
... 

Git शो 409c के लिए एक ही changeset से पता चलता .. और 533e

$ git br --contains 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 
release-1.1.0 
$ git br --contains 409c61b3304373a73c787fdf9c08cc338934b74d 
master 
release-1.0.4 

इसका मतलब है कि changeset दोनों मास्टर में है और जारी-1.1.0। तो गिट चेरी कैसे 533e दिखाता है ..?

उत्तर

3

यह भी कहता है "काम की तुलना उनके पैच आईडी से की जाती है, जो गिट-पैच-आईडी प्रोग्राम से प्राप्त होती है।" जब आपके चेरी-चुने हुए diff को लागू किया गया, तो क्या यह थोड़ा अलग अंतर होने पर समाप्त हो गया?

उस मामले में न केवल प्रतिबद्ध आईडी भिन्न होगी, बल्कि पैच आईडी भी गिट-पैच-आईडी के रूप में काम करने के लिए अलग-अलग पैच आईडी रिपोर्ट करेगी और इस प्रकार उन्हें एक-दूसरे की शाखाओं में नहीं माना जाएगा ।

यह इस के लिए जाँच करने के लिए आसान है:

git show 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 | git-patch-id 
git show 409c61b3304373a73c787fdf9c08cc338934b74d | git-patch-id 

पहले SHA1 Git-पैच-आईडी द्वारा लौटाए गए दोनों रन के बीच अलग हैं, तो वह यह है कि क्या हुआ है।

कैविट लेक्टर - मैंने अपने सिद्धांत की कोशिश नहीं की है, लेकिन इस तरह मैं मैन-पेजों की व्याख्या करता हूं।

+1

मेरे पास मेरे पथ में गिट-पैच-आईडी नहीं है, लेकिन 'गिट पैच-आईडी' काम करता है। –

संबंधित मुद्दे