2011-12-19 7 views
6

यह आदेश ठीक काम करता है:मैं गिट में पूर्ण पथ का उपयोग कैसे कर सकता हूं?

git diff relative/path/to/file.ext 

लेकिन अगर मैं पूर्ण पथ का उपयोग करें, Git का कहना है कि पथ "बाहर भंडार है":

git diff /full/path/then/relative/path/to/file.ext 

मुझे लगता है Git में एक .git निर्देशिका नहीं मिल रहा है/पूर्ण, इसलिए यही विफल रहता है।

लेकिन मैं गिट को पूर्ण पथ को कैसे समझूं, जैसे उपversण करता है?

अद्यतन: Git संस्करण 1.7.0.5

अद्यतन: इन फ़ाइलों को मेरी भंडार के अंदर हमेशा से रहे हैं, और मेरे वर्तमान निर्देशिका मेरी भंडार के अंदर भी है! यह अभी भी उस त्रुटि देता है।

+0

आप समझा सकते हैं कि आप इस की क्या ज़रूरत है: आप पूरी तरह Git आदेश की जरूरत है भंडार बाहर से निष्पादित करने के लिए, --work-tree और --git-dir स्विच का उपयोग करें? – Mat

+1

"बाहरी भंडार" आमतौर पर इसका मतलब है कि वर्तमान निर्देशिका गिट भंडार का हिस्सा नहीं है, इसलिए गिट कमांड काम नहीं करते हैं। एक गिट कार्य निर्देशिका में बदलें, और यह किसी भी पथ के साथ काम करना चाहिए। – poke

+0

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

उत्तर

0

यदि आप गिट रेपो के बाहर एक फ़ाइल को अलग करना चाहते हैं तो आपको opendiff जैसे diff टूल का उपयोग करना चाहिए और रिपॉजिटरी के बाहर दूसरी फ़ाइल के साथ रेपो से फ़ाइल की तुलना करना चाहिए।

आप बाहरी फाइलों की तुलना नहीं कर सकते क्योंकि गिट फाइलों में "सोच" नहीं देता है।

+0

आप आसानी से 'गिट diff --no-index - file1 file2' – knittl

13

आप किस गिट का उपयोग कर रहे हैं? यह पथ के प्रारूप की परवाह किए बिना काम करना चाहिए, अर्थात

cd git 
git diff -- git.c 
git diff -- ~/git/git.c 

लेकिन आप Git भंडार के अंदर होने के लिए यह काम करने के लिए के लिए है!

git --work-tree=~/git --git-dir=~/git/.git diff -- git.c 
git --work-tree=~/git --git-dir=~/git/.git diff -- ~/git/git.c 
+1

संस्करण 1.7.0.5 चला सकते हैं। आपके उदाहरण में, ~/git आपके गिट कामकाजी निर्देशिका की जड़ है? मैंने आपके सभी सुझावों का प्रयास किया, लेकिन मुझे अभी भी वही त्रुटि मिली है। –

+0

@WillSheppard: yep '~/git' वर्कट्री और .git निर्देशिका – knittl

+0

युक्त शीर्ष स्तर की निर्देशिका है, मेरा गिट' - ''work 'पेड़' में नहीं समझा; मुझे पूरा पथ इस्तेमाल करना पड़ा। – sam

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

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