Починаючи з 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()
.