Git использование --work-tree и --git-dir в командах
Итак, у меня есть php-скрипт, который интегрируется с API Bitbucket и вносит изменения в некоторые локальные/общие репозитории.
Для этого я использую --git-dir
и --work-tree
[ когда применимо] вместе с каждой командой, как в:
/usr/bin/git --git-dir=/var/www/staging.repo/.git --work-tree=/var/www/staging.repo merge "origin/master" 2>&1; echo $?
Я использую git версии 1.7.0.4 в своей среде разработки и git версии 1.5.6.5 на реальном сервере. Причина этого в том, что для Debian Lenny (5) нет более новой версии git, поэтому я застрял на более старой.
В проблема в том, что некоторые команды, которые правильно принимают --work-tree
и --git-dir
в git версии 1.7, похоже, не очень заботятся об этом в более старой версии. Один из примеров:
/usr/bin/git--git-dir=/var/www/промежуточное.репо/.git--рабочее дерево=/var/www/промежуточное.репо слияние "источник/мастер" 2>&1;echo $?
, который выводит:
Фатальный: /usr/bin/git-слияние не может быть использовано без рабочего дерева.
Итак, как я могу широко использовать эти параметры с помощью git 1.5.6.5?
Решение:
Загруженный источник git:
Я сам:/какая-то/папка$curl-O http://git-core.googlecode.com/files/git-1.7.7.tar.gz
Установлено:
Myself:/some/folder/git-1.7.7.tar.gz $./настроить
Myself:/some/folder/git-1.7.7.tar.gz $сделать
Myself:/some/folder/git-1.7.7.tar.gz $sudo сделать установку
Готово!:)
Ссылка: http://www.mikepilat.com/blog/2011/06/how-to-build-git-from-source-on-ubuntu/
1 answers
Пожалуйста, скомпилируйте последнюю версию git.
Да, некоторые команды не соблюдают эти параметры. Вместо этого вы можете попробовать установить их эквивалентные переменные среды.