Ответ 1
От, man git
:
Вы можете сделать это с помощью параметра - git -dir, прежде чем передавать какие-либо команды.
git --git-dir /foo/bar/.git log
У меня есть некоторые php файлы в папке A (которая представляет собой проект git). В этом файле php я хочу выполнить "git log", но для папки B. Папка B - это еще один проект git (поэтому журнал отличается от A и B).
Как я могу сделать это с помощью команды оболочки?
От, man git
:
Вы можете сделать это с помощью параметра - git -dir, прежде чем передавать какие-либо команды.
git --git-dir /foo/bar/.git log
С git 1.8.5 (Q4 2013) у вас будет другой выбор, вместо установки --git-dir
.
Если вы хотите выполнить git log
в папке B
, введите:
git -C B log
Так же, как "
make -C <directory>
", "git -C <directory> ...
" сообщает Git идти туда, прежде чем делать что-либо еще.
Смотрите commit 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