Починаючи з git 1.8.5 (Q4 2013) , ви зможете "використовувати команду Git, але не змінюючи каталоги".
Так само, як " make -C <directory>", " git -C <directory> ..." каже Git піти туди, перш ніж робити щось інше .
Див здійснювати 44e1e4 по Назрі 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>'" як неоператив , коли <path>він порожній.
" git -C """ ненавмисно гине з помилкою " Cannot change to ''", тоді як оболонка трактує cd "" "як неоперативний.
Приймаючи поведінку оболонки як прецедент, навчіть 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 , фіксування 3738439 , фіксація 7717242 , фіксація 7717242 , фіксація 7717242 , фіксація 7717242 ( фіг. автор: Дентон Лю ( Denton-L) .
(Об’єднав Хуніо С Хамано - 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().