2011-05-18 14 views
34

मैं गिट के लिए काफी नया हूं, इस प्रकार शायद मैं यहां कुछ खो रहा हूं।गिट - कुछ फ़ाइलों को बदले में चिह्नित किया गया है लेकिन 'गिट डिफ' कुछ भी नहीं दिखाता है

[email protected]:/var/www/$ git status -s 
M GoogleChromeExtension.js 
M ApiClient.js 

तो स्पष्ट रूप से 2 फाइलें बदली गई हैं।
लेकिन जब मैं चलाएँ:

git diff 

कोई उत्पादन दिखाया गया है। मैं अपनी कामकाजी प्रति और नवीनतम प्रतिबद्धता के बीच परिवर्तन प्राप्त करने की उम्मीद कर रहा था।

मैं कर रहा हूँ यकीन है कि कल सब कुछ उम्मीद के रूप में काम कर रहा था ...

यह शायद है क्योंकि मैं दूरस्थ सर्वर से परिवर्तन नहीं धक्का दिया है?

पी.एस .: मैं उपयोग कर रहा हूँ GitHub

धन्यवाद,
दान

+2

कृपया "-s" – jcollie

उत्तर

49

git diff --cached करें - यह हेड और इंडेक्स की तुलना करता है, यानी प्रतिबद्धता के लिए जोड़े गए सामान।

बस एक git diff सूचकांक और कार्यशील निर्देशिका के बीच है, इसलिए यदि सभी परिवर्तन हो के लिए मंचन किया गया है, तो आप 'जीता git diff

में कुछ भी नहीं देख तीसरा रूप git diff <commit> जो निर्देशिका काम कर रहे तुलना करता है और प्रतिबद्ध है। तो git diff HEAD कर आपको वह अंतर भी देगा जो आप चाहते हैं।

+4

के बिना "गिट स्थिति" का आउटपुट जोड़ें, ध्यान दें कि आप गिट-स्टेटस के आउटपुट से बता सकते हैं कि फ़ाइल संशोधन इंडेक्स में हैं क्योंकि 'एम' पहले में दिखाई देता है स्तंभ। यदि परिवर्तन नहीं किए गए थे, तो 'एम' दूसरे कॉलम में होगा। –

+0

@ विलियम पर्सेल - अच्छा बिंदु। इसके अलावा, यदि रंग आउटपुट सक्षम है, तो पूर्व में हरे रंग का रंग एम और बाद वाला लाल होता है। कम से कम, विंडोज़ पर गिट बैश में मेरे लिए यह मामला है।इसलिए केवल 'गिट स्टेटस' होना जरूरी नहीं है, लेकिन अगर आपको पता है कि कहां देखना है तो 'गिट स्टेटस' भी बहुत जानकारीपूर्ण हो सकता है। – manojlds

+1

'गिट स्थिति -एस 'मुख्य रूप से मशीन खपत के लिए है; कंप्यूटर आमतौर पर हमारे कॉलम पर ध्यान देने के लिए बेहतर होते हैं। (और हम रंग पढ़ने में बेहतर हैं।) – Cascabel

3

वास्तव में क्या हो रहा है पर निर्भर करता है, वहाँ इस के लिए दो समाधान हो सकता है। यह सबसे अच्छा होगा यदि आपने शॉर्ट मोड का उपयोग नहीं किया क्योंकि यह डिबगिंग के लिए महत्वपूर्ण जानकारी छुपाता है।

यदि आप परिवर्तन की उम्मीद करते हैं, तो अंतिम निर्देशिका में कार्य निर्देशिका की तुलना करने के लिए git diff HEAD चलाने का प्रयास करें। यदि आपके पास पहले से ही git add परिवर्तनों को संपादित करते हैं, तो डिफ़ॉल्ट अंतर भिन्न भिन्नता उन मतभेदों को प्रदर्शित नहीं करेगी। http://git-scm.com/docs/git-diff मैन पेज विवरण देखें जो इस बारे में बात करता है। git status आउटपुट (बिना एसएस) सभी को यह देखने में मदद करेगा कि यह मामला है या नहीं।

वैकल्पिक रूप से, यदि आपने परिवर्तन की अपेक्षा नहीं की है, तो यह एक ओएस/फाइल सिस्टम समस्या हो सकती है। कृपया अपने ओएस और फाइल सिस्टम जानकारी की रिपोर्ट करें।

1

सुनिश्चित करें कि आप वास्तव में किसी अन्य गिट भंडार के भीतर नहीं हैं। और अगर आदेशों ऊपर किसी कारण से विफल रहता है, चलाने का प्रयास:

git show HEAD 
0

मैं अभी हाल ही में इस समस्या थी, और पाया यह हुआ क्योंकि मैं भंडार के लिए मेरे .gitattributes फ़ाइल बदल दिया है। क्या आपने हाल ही में अपनी किसी भी .gitattributes फ़ाइलों को बदल दिया है? क्या सभी फाइलें एक ही प्रकार के बदले हैं? मेरे हालिया मुद्दों ने उदाहरण के लिए * .sql फ़ाइलों को प्रभावित किया। जब मैं .gitattributes में परिवर्तन को कम करता हूं, तो स्रोत फ़ाइलें दोबारा अपरिवर्तित हो जाती हैं।

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