अपने स्वयं के उत्तर को पूरा करने के लिए, वाक्यविन्यास वास्तव में है
git show object
git show $REV:$FILE
git show somebranch:from/the/root/myfile.txt
git show HEAD^^^:test/test.py
आदेश संशोधन की सामान्य शैली लेता है, जिसका अर्थ है कि आप निम्न में से किसी का उपयोग कर सकते हैं:
- शाखा का नाम (जैसा कि राख द्वारा सुझाया गया है )
HEAD
की + x संख्या ^
वर्णों की
- SHA1 किसी दिए गए संशोधन का हैश
- किसी दिए गए SHA1 हैश के पहले कुछ (शायद 5) अक्षर
युक्ति यह याद रखना महत्वपूर्ण है कि " git show
" का उपयोग करते समय , हमेशा रिपॉजिटरी के रूट से एक पथ निर्दिष्ट करें , न कि आपकी वर्तमान निर्देशिका स्थिति।
(हालांकि माइक मोरेर्टी का उल्लेख है कि, कम से कम git 1.7.5.4 के साथ, आप पथ ./
की शुरुआत में " " डालकर एक सापेक्ष पथ निर्दिष्ट कर सकते हैं - उदाहरण के लिए:
git show HEAD^^:./test.py
)
Git 2.23+ (अगस्त 2019) के साथ, आप यह भी उपयोग कर सकते हैं git restore
जो भ्रमित कमांड को बदल देता हैgit checkout
git restore -s <SHA1> -- afile
git restore -s somebranch -- afile
यह काम कर रहे पेड़ पर केवल "स्रोत" ( -s
) प्रतिबद्ध SHA1 या शाखा में मौजूद फ़ाइल को पुनर्स्थापित करेगा somebranch
।
सूचकांक को भी बहाल करने के लिए:
git restore -s <SHA1> -SW -- afile
( -SW
: के लिए कम --staged --worktree
)
Git1.5.x से पहले, यह कुछ प्लंबिंग के साथ किया गया था:
git ls-tree <rev>
एक कमिट के भीतर एक या एक से अधिक 'बूँद' वस्तुओं की सूची दिखाएं
git cat-file blob <file-SHA1>
एक फ़ाइल को कैट करें क्योंकि यह एक विशिष्ट संशोधन (svn बिल्ली के समान) के भीतर प्रतिबद्ध है। दिए गए फ़ाइल- sha1 के मान को पुनः प्राप्त करने के लिए git ls-tree का उपयोग करें
git cat-file -p $(git-ls-tree $REV $file | cut -d " " -f 3 | cut -f 1)::
git-ls-वृक्ष संशोधन $ REV में $ फ़ाइल के लिए ऑब्जेक्ट आईडी को सूचीबद्ध करता है, यह आउटपुट से बाहर कट जाता है और गिट-कैट-फ़ाइल के तर्क के रूप में उपयोग किया जाता है, जिसे वास्तव में गिट-कैट-ऑब्जेक्ट कहा जाना चाहिए, और बस डंप स्टडआउट करने के लिए वह वस्तु।
ध्यान दें: Git 2.11 (Q4 2016) के बाद से, आप git cat-file
आउटपुट पर एक सामग्री फ़िल्टर लागू कर सकते हैं !
देखें प्रतिबद्ध 3214594 , प्रतिबद्ध 7bcf341 , (09 सितं, 2016) के लिए प्रतिबद्ध 7bcf341 (09 सितं, 2016), और b9e62f6 प्रतिबद्ध , प्रतिबद्ध 16dcc29 द्वारा (24 अगस्त 2016) जोहानिस Schindelin ( dscho
) ।
(द्वारा विलय Junio सी Hamano - gitster
- में प्रतिबद्ध 7889ed2 , 21 सितं, 2016)
cat-file
: समर्थन --textconv
/ --filters
बैच मोड में
भले ही " git hash-objects
", जो ऑन-फाइलसिस्टम डेटा स्ट्रीम लेने और इसे गिट ऑब्जेक्ट स्टोर में डालने का एक उपकरण है, "बाहरी-दुनिया-से-गिट" रूपांतरण (जैसे अंत-लाइन के रूपांतरण और आवेदन करने की अनुमति देता है) क्लीन-फिल्टर), और इसमें बहुत शुरुआती दिनों से डिफ़ॉल्ट रूप से इसकी विशेषता थी, इसका रिवर्स ऑपरेशन " git cat-file
", जो Git ऑब्जेक्ट स्टोर से एक ऑब्जेक्ट लेता है और बाहरी दुनिया द्वारा खपत के लिए बाहरी करता है, एक समतुल्य तंत्र की कमी है "गेट-टू-आउट-वर्ल्ड" चलाएं
git config diff.txt.textconv "tr A-Za-z N-ZA-Mn-za-m <"
git cat-file --textconv --batch
ध्यान दें: "git cat-file --textconv
" ने हाल ही में (2017) सीगफॉल्टिंग शुरू की, जिसे Git 2.15 (Q4 2017) में ठीक कर लिया गया है
जेफ किंग ( ) द्वारा देखें प्रतिबद्ध cc0ea7c (21 सितंबर 2017 ) । (द्वारा विलय Junio सी Hamano - - में प्रतिबद्ध bfbc2fc , 28 सितं, 2017)peff
gitster
ध्यान दें कि पिछली सामग्री से किसी फ़ाइल को ओवरराइड / रिप्लेस करने के लिए , आपको भ्रमित करने वाली git checkout
कमांड का उपयोग नहीं करना चाहिए , लेकिन git restore
(२.२३+, अगस्त २०१ ९)
git restore -s <SHA1> -- afile
यह काम कर रहे पेड़ पर केवल "स्रोत" ( -s
) SHA1 के रूप में मौजूद फ़ाइल को पुनर्स्थापित करेगा ।
सूचकांक को भी बहाल करने के लिए:
git restore -s <SHA1> -SW -- afile
( -SW
: के लिए कम --staged --worktree
)
git show
(अनछुए) एक बृहदान्त्र के साथ विभिन्न वाक्यविन्यास का उपयोग करता है।git show 2c7cf:my_file.txt