2012-09-06 15 views
55

में स्थानीय गिट भंडार का मार्ग ढूंढूं, तो मुझे git list-path संबंधित भंडार (.git निर्देशिका) के पथ को प्रिंट करने की तरह कुछ ढूंढ रहा हूं।जब मैं संभवतः उपनिर्देशिका

पृष्ठभूमि का एक बिट: मैंने अपने परियोजनाओं/फ़ोल्डरों में से कुछ पर गिट संस्करण नियंत्रण स्थापित किया है। उनमें से कुछ नेस्टेड हैं, इसलिए इको स्वयं भंडार वाली एक निर्देशिका एक अन्य निर्देशिका के साथ ट्रैक की गई दूसरी निर्देशिका में सबफ़ोल्डर है।

उदा। मेरी होम निर्देशिका में (~) मैं अपनी डॉट फाइलों को ट्रैक करने के लिए गिट का उपयोग करता हूं, लेकिन फ़ोल्डर ~/photo/meta-mix/ में मेरे पास एक और प्रोजेक्ट है जिसे मैं अलग भंडार के साथ ट्रैक करता हूं। अब, कहें, मैंने निर्देशिका ~/photo/meta-match/ में एक और प्रोजेक्ट स्थापित किया है, लेकिन अब मुझे नहीं पता कि उसके पास रिपोजिटरी है या नहीं। इसलिए मैं यह जानना चाहता हूं कि यह निर्देशिका संस्करण नियंत्रित है और जहां इसकी भंडार है।

मैं इसे गिट कमांड के साथ कैसे कर सकता हूं? git status मुझे, दोनों मामलों में

nothing to commit 

दे सकते हैं जब ~/photo/meta-match/ अपने स्वयं के भंडार है या जब यह सिर्फ ~ के भंडार को दर्शाता है।

उत्तर

70
git rev-parse --show-toplevel 

एक गिट रेपो के भीतर निष्पादित होने पर पर्याप्त हो सकता है।
git rev-parse आदमी पृष्ठ से:

--show-toplevel 

शीर्ष स्तर की डायरेक्टरी का निरपेक्ष पथ दिखाएं।

(1.7.x से पहले) पुराने संस्करणों के लिए, अन्य विकल्प "Is there a way to get the git root directory in one command?" में सूचीबद्ध हैं:

git rev-parse --git-dir 

कि .git निर्देशिका के पथ देना होगा।


ओपी का उल्लेख है:

git rev-parse --show-prefix 

जो Git रेपो जड़ के तहत स्थानीय पथ देता है। (खाली आप Git रेपो बुनियाद होती हैं अगर)


नोट: बस पता चल सके कि एक एक Git रेपो में है के लिए, मैं निम्न आदेश काफी अर्थपूर्ण लगता है:

git rev-parse --is-inside-work-tree 

और हाँ, अगर आप यदि आप एक .git Git-निर्देशिका फ़ोल्डर में हैं जांच करने की आवश्यकता:

git rev-parse --is-inside-git-dir 
दुर्भाग्य से `git` (v1.7.0 से पहले) के पुराने संस्करणों पर
+0

कि सिर्फ प्रिंट' --show-toplevel' - यह भी नहीं है एक त्रुटि। –

+0

@ बेन जेकसन को अपग्रेड करने का कोई मौका? यदि नहीं, तो मैंने एक और कमांड – VonC

+0

जोड़ने के लिए संपादित किया है मेरा प्रश्न नहीं: मैं सिर्फ उत्तर पर टिप्पणी कर रहा हूं।पुराने व्यवहार को देखते हुए मैं वास्तविक भ्रम देख सकता हूं अगर किसी ने उस विधि पर भरोसा करते हुए एक स्क्रिप्ट जारी की है। –