2011-03-10 10 views
20

मैं मास्टर शाखा और मेरी सुविधा शाखा के बीच अंतर देखना चाहते हैं। मेरे पास मास्टर से मेरी फीचर शाखा में कई खींचें हैं और मैं उन बदलावों को देखना चाहता हूं जो जोड़े जाएंगे यदि मैंने मास्टर में अपनी सुविधा विलय कर दी है।Git diff नहीं दिखाती है पर्याप्त

यह मेरी स्थिति है:

-*--*--*-----*<master> 
    \  \  \ 
    1--*--*--*--2--*<feature> 

मेरे समस्या git diff master feature केवल संख्या 2. प्रतिबद्ध मैं diff है कि एक GitHub पुल अनुरोध दिखाई देंगे, जो मेरा मानना ​​है कि देखना चाहते हैं प्रदर्शित करने के लिए लगता है सभी तरह से है प्रतिबद्ध करने के लिए 1. मैं git cherry देखा मुझे प्रतिबद्ध मैं के लिए अंतर देखना चाहते हैं पता चलता है।

किसी भी सलाह के लिए धन्यवाद।

उत्तर

113

git diff A B के बारे में एहसास करने की महत्वपूर्ण बात यह है कि यह केवल आपको केवल ग्राफ के दो बिंदुओं के बीच पेड़ के राज्यों के बीच अंतर दिखाता है - यह इतिहास की परवाह नहीं करता है। git diff के लिए इस्तेमाल किया .. और ... अंकन निम्नलिखित अर्थ है:

An illustration of the different ways of specifying commits for git diff

तो जब आप git diff master feature चलने वाले है केवल आपके परिवर्तन प्रतिबद्ध आप 2 के रूप में चिह्नित किया है द्वारा शुरू नहीं दिखा रहा - उत्पादन दिखाना चाहिए पेड़ master में प्रतिबद्ध के राज्य और पेड़ feature में प्रतिबद्ध के राज्य के बीच सटीक मतभेद। यदि यह आपको अपनी फीचर शाखा पर पहले के बदलाव नहीं दिखा रहा है, तो शायद आपने master में संस्करण के पक्ष में मास्टर से पहले विलय से विवादों का समाधान किया है?

cebewee says के रूप में यह हो सकता है कि क्या आप चाहते हैं git log -p master..feature है, क्योंकि git logइतिहास के बारे में देखभाल करता है। क्योंकि वे प्रतिबद्ध की श्रेणी का चयन .. और git log के लिए ... के अर्थ अलग हैं:

An illustration of the different ways of specifying ranges of commits for git log

संयोग से, अपने अक्सर कहा जाता है कि एक विषय शाखा में master से विलय करने के लिए गलत बात है - के बजाय आपको चाहिए पूरी होने के बाद master में अपनी विषय शाखा को विद्रोह करना या विलय करना। यह आसानी से समझने वाली विषय शाखा का अर्थ रखता है। गिट रखरखाव ने ब्लॉग पोस्ट को the philosophy of merging पर चर्चा की है (कुछ समझने में मुश्किल है) जो चर्चा करता है।

+2

देखें हालांकि, लिंक किए गए ब्लॉग पोस्ट कहा गया है कि एक स्थिति है जिसमें सुविधा शाखा नहीं रह गया है 'कार्रवाई में से एक सही पाठ्यक्रम master' में सफाई से विलीन हो जाती है में' विलय करने में master' है विशेषता शाखा और फीचर शाखा पर संघर्ष हल करें। – Plasma

+0

विलय के दर्शन के लिंक के लिए धन्यवाद। मैं इसे पढ़ रहा था और मुझे लेखक का नाम नहीं पता था, बस वह मैटैनर है। क्या आपको उसका नाम मालूम है? - संपादित: कभी दिमाग नहीं। उसका नाम जूनियो सी हैमनो है। टीएक्स –

6

git diff master feature प्रतिबद्ध 'लेकिन प्रतिबद्ध मास्टर और सुविधा के बीच शाब्दिक अंतर के किसी भी प्रदर्शित नहीं करता है। ऐसा लगता है जैसे आप फीचर से सभी काम देखना चाहते हैं, जो अभी तक मास्टर में नहीं हैं? इस मामले में, git log master..feature या git log -p master..feature, भी कोशिश करता है, तो आप डिफ देखना चाहते हैं।

'ए..बी' वाक्यविन्यास के स्पष्टीकरण के लिए man git-rev-parse में निर्दिष्ट स्पंज को अनुभाग देखें।

1

मैं गिट के लिए अपेक्षाकृत नया हूं, लेकिन अगर मैं आपका प्रश्न सही ढंग से समझता हूं। आपका प्रश्न नहीं ठीक से दूरस्थ और स्थानीय खजाने को समझने और कैसे वे एक दूसरे से संबंधित से निहित है। मुझे याद है कि एक बार मुझे यह समझने के बाद, सबकुछ 2 एक्स आसान हो गया।

आपको लगता है कि आप जहाँ आप केवल 2 शाखाएं हैं नीचे इस स्थिति में हैं:

  • featureBranch
  • masterBranch

फिर भी अगर आप एक git branch -a कर आप को देखने के लिए सक्षम हो जाएगा आपकी शाखाओं के सभी, स्थानीय और दूरस्थ

तो अपने असली स्थिति है:

  • featureBranch
  • masterBranch
  • remoteBranch (रों)
*---* <remote's Master> which is behind your local 
     \ 
     -*--*--*-----*<master> which is ahead of your remote/origin 
     \  \  \ 
     1--*--*--*--2--*<feature> 

आदेश में Github Pull Request में आपको पर रिमोट शाखा के साथ आपको भिन्नता देखने में सक्षम होना चाहिए।

git diff <local branch> <remote>/<remote branch> 

compare local git branch with remote branch?

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