Я пытаюсь запустить Git из другого каталога, чем я в. Так, например, если я в:
cd /home/domain/
git status << runs perfect ie
# On branch master
# Your branch is ahead of 'origin/master' by 6 commits.
Итак, теперь я хочу запустить эту команду из другого каталога, используя --git-dir
опцию.
Итак, скажем, я в root/
и попробуйте это:
git --git-dir="/home/domain/" status
## Error
fatal: Not a git repository: '/home/domain/'
Я также попытался включить .git
папку, т.е.
git --git-dir="/home/domain/.git/" status
Но похоже, что он пытается запустить git из корня, то есть удалить все из папки моего домена и добавить все в корень.
Надеюсь, кто-то может посоветовать, что я делаю не так.
--git-dir
и--work-tree
для простой команды: см. Мой ответ нижеОтветы:
Вы также должны определить рабочий каталог. Смущает, я знаю, но это гибкость.
Вы можете прочитать немного больше здесь
источник
--git-dir
он не указан, он проверит,/mycode/.git
существует ли, и использует это, прежде чем выдать ошибку.git --git-dir=~/src/s3cmd/.git --work-tree=~/src/s3cmd pull
не работает , ноgit --git-dir=/home/username/src/s3cmd/.git --work-tree=/home/username/src/s3cmd pull
сделалgit --git-dir="$HOME/foo/.git" --work-tree="$HOME/foo" status
Начиная с git 1.8.5 (который должен выйти на следующей неделе), будет еще проще:
Не нужно устанавливать
--git-dir
и--work-tree
больше!Смотрите коммит 44e1e4 от Назри Рамлия :
источник
git status -C <path>
не будет работать!)Исходя из вашего комментария выше, кажется, что вы все еще сталкиваетесь с проблемой:
Похоже, вы собираетесь запустить это
crontab
или что-то в этом роде. Возможно, вам лучше использоватьcd
сначала переключение на ваш рабочий каталог. Например:Это временно (в подоболочке, что и делают круглые скобки), изменит текущий каталог на
/home/domain
и затем запуститgit pull origin master
. После завершения команды ваш текущий каталог останется таким, каким он был до команды.источник
С Git 2.26 (первый квартал 2020 года) документация стала понятнее.
Одним из следствий указания, где
GIT_DIR
находится (либо с помощью переменной среды, либо с помощью параметра «git --git-dir=<where> cmd
»), является отключение обнаружения хранилища .Это было уделено немного больше внимания документации, так как новые пользователи часто путаются.
См. Коммит d82ad54 (30 января 2020 г.) Хеба Вали (
HebaWaly
) .(Слиты Junio C Hamano -
gitster
- в фиксации 17e4a1b , 12 февраля 2020)Итак, документация на
git --git-dir
данный момент включает в себя:источник