การเริ่มต้นgit 1.8.5 (Q4 2013)คุณจะสามารถ "ใช้คำสั่ง Git แต่ไม่ต้องเปลี่ยนไดเรกทอรี"
เช่นเดียวกับ " make -C <directory>" " git -C <directory> ..." บอก Git ไปที่นั่นก่อนที่จะทำอะไรอย่างอื่น
ดูการกระทำ 44e1e4โดยNazri Ramliy :
ใช้การกดคีย์เพิ่มเติมเพื่อเรียกใช้คำสั่ง 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>'" เป็นไม่มี-op เมื่อ<path>เป็นที่ว่างเปล่า
' git -C ""' ตายอย่างไม่ช่วยเหลือด้วยความผิดพลาด " Cannot change to ''" ในขณะที่เชลล์ปฏิบัติต่อ cd "" 'เป็นแบบไม่มี op
การใช้พฤติกรรมของเชลล์เป็นแบบอย่างให้สอน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 (ไตรมาสที่ 1 ปี 2020) เป็นตัวอย่าง
ดูกระทำ b441717 , กระทำ 9291e63 , กระทำ 5236fce , กระทำ 10812c2 , กระทำ 62d58cd , กระทำ b87b02c , กระทำ 9b92070 , กระทำ 3595d10 , กระทำ f511bc0 , กระทำ f6041ab , กระทำ f46c243 , กระทำ 99c049b , กระทำ 3738439 , กระทำ 7717242 , กระทำ b8afb90 (20 ธันวาคม 2019) โดยDenton หลิว (Denton-L )
(รวมโดยJunio C Hamano - gitster-ในการกระทำ 381e8e9 , 5 กุมภาพันธ์ 2020)
t1507: อินไลน์ full_name()
ลงชื่อออกโดย: Denton Liu
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()ได้