1.8.5 git (Q4 2013) से शुरू होकर , आप "Git कमांड का उपयोग कर पाएंगे, लेकिन निर्देशिकाओं को बदले बिना"।
ठीक वैसे ही जैसे " make -C <directory>
", " git -C <directory> ...
" गित को कुछ और करने से पहले वहां जाने के लिए कहता है ।
देखें नाज़री रामली द्वारा प्रतिबद्ध 44e1e4 :
वर्तमान निर्देशिका को छोड़े बिना एक अलग निर्देशिका में Git कमांड को लागू करने के लिए अधिक कुंजीवृत्त लेता है:
(cd ~/foo && git status)
git --git-dir=~/foo/.git --work-tree=~/foo status
GIT_DIR=~/foo/.git GIT_WORK_TREE=~/foo git status
(cd ../..; git grep foo)
for d in d1 d2 d3; do (cd $d && git svn rebase); done
ऊपर दिखाए गए तरीके स्क्रिप्टिंग के लिए स्वीकार्य हैं लेकिन त्वरित कमांड लाइन चालान के लिए बहुत बोझिल हैं।
इस नए विकल्प के साथ, उपरोक्त कुछ कीस्ट्रोक्स के साथ किया जा सकता है:
git -C ~/foo status
git -C ../.. grep foo
for d in d1 d2 d3; do git -C $d svn rebase; done
Git 2.3.4 (मार्च 2015), और के बाद से 6a536e2 प्रतिबद्ध द्वारा कार्तिक नायक ( KarthikNayak
) , git
व्यवहार करेगा " git -C '<path>'
एक के रूप में" नो-सेशन जब <path>
खाली है।
" git -C ""
" अनजाने में त्रुटि के साथ " Cannot change to ''
" मर जाता है , जबकि शेल सीडी "" को नो-ऑप मानता है।
शेल के व्यवहार को एक मिसाल के रूप में लेते हुए, git
-C "" को नो-ऑप के रूप में भी सिखाएं ।
4 साल बाद, Git 2.23 (Q3 2019) दस्तावेज़ जो ' git -C ""
' काम करता है और निर्देशिका नहीं बदलता है
6a536e2 के बाद से यह व्यवहार कर रहा है git
: ( "व्यवहार करें" git -C '<path>'
जब कोई <path>
खाली न हो, तो 2015-03-06, Git v2.3.4)।
इसका मतलब है कि प्रलेखन अब (अंत में) शामिल हैं:
यदि ' <path>
' मौजूद है, लेकिन खाली है, उदाहरण के लिए -C ""
, तो वर्तमान कार्य निर्देशिका को अपरिवर्तित छोड़ दिया गया है।
आप git -C
उदाहरण के रूप में Git 2.26 (Q1 2020) के साथ उपयोग कर सकते हैं ।
देखें b441717 प्रतिबद्ध , प्रतिबद्ध 9291e63 , प्रतिबद्ध 5236fce , प्रतिबद्ध 10812c2 , प्रतिबद्ध 62d58cd , b87b02c प्रतिबद्ध , प्रतिबद्ध 9b92070 , प्रतिबद्ध 3595d10 , f511bc0 प्रतिबद्ध , प्रतिबद्ध f6041ab , प्रतिबद्ध f46c243 , 99c049b प्रतिबद्ध , प्रतिबद्ध 3,738,439 , 7,717,242 प्रतिबद्ध , b8afb90 प्रतिबद्ध (20 दिसंबर 2019) डेंटन लियूDenton-L
द्वारा ( ) ।
(द्वारा विलय Junio सी Hamano - gitster
- में प्रतिबद्ध 381e8e9 , 05 फरवरी 2020)
t1507
: पंक्ति में full_name()
साइन-ऑफ-बाय: डेंटन लियू
इससे पहले, हम चल रहे थे test_must_fail full_name
। हालाँकि, test_must_fail
इसका उपयोग केवल git कमांड पर किया जाना चाहिए।
इनलाइन full_name()
ताकि हम सीधे कमांड test_must_fail
पर उपयोग कर git
सकें।
जब full_name()
में पेश किया गया था 28fb84382b ( "परिचय <branch>@{upstream}
अंकन", 2009-09-10, Git v1.7.0-RC0 - मर्ज ), git -C
विकल्प उपलब्ध नहीं है अभी तक था (क्योंकि यह में पेश किया गया था 44e1e4d67d ( " git
: दिए गए एक निर्देशिका में चलाने -C विकल्प के साथ ", 2013-09-09, Git v1.8.5-rc0 - बैच # 5 में सूचीबद्ध मर्ज ))।
नतीजतन, सहायक फ़ंक्शन ने प्रत्येक बार मैन्युअल रूप से आवश्यकता को हटा दिया । हालाँकि, अब उपलब्ध होने के बाद , हम इसके बजाय और इनलाइन का उपयोग कर सकते हैं ।
cd
git -C
full_name()