Подтвердить что ты не робот

Настройка репозитория git в моем хостинговом плане GoDaddy

У меня есть проект, который управляется версиями с помощью git.

То, что я хочу сделать, - настроить репо на моем (ssh-enabled) GoDaddy общем пакете хостинга, чтобы я мог развертывать с помощью push, а не перетаскивания на FTP.

Любые советы будут оценены. Лучше всего была бы учетная запись от кого-то, кто уже сделал это, но я не смог лично найти онлайн.

4b9b3361

Ответ 1

С небольшой работой я смог запустить Git в моей учетной записи GoDaddy. Там длиннее сообщение, подробно описывающее процесс мой блог, но короткий ответ:

  • установите Git в свою учетную запись (возможно, используя архив, упомянутый в моем сообщении в блоге).
  • создать репозиторий Git (голый или нет) в вашей учетной записи
  • проверьте свой репозиторий, используя -u, чтобы указать путь к git-upload-pack

    % Git clone -u libexec/ git -core/git -upload-pack mysite: myrepo.git

  • настройте конфигурацию локального репозитория, указав правильные пути на git-upload-pack и git-receive-pack:

    % Git config remote.origin.receivepack libexec/git -core/git -receive-pack
     % Git config remote.origin.uploadpack libexec/git -core/git -upload-pack


Поскольку блог больше не доступен, вот полный пост, вытащенный из archive.org:

Использование Git в GoDaddy

Этот блог размещен на дешевой учетной записи GoDaddy. Когда доступ к оболочке через SSH был недавно доступен, я подумал, что было бы забавно установить локальные репозитории Git. Это не было тривиально, но я, наконец, начал работать. Вот как я это сделал:

Шаг 0. Настройте SSH

Вы хотите создать открытый ключ, чтобы без проблем использовать SSH для своей учетной записи GoDaddy. Создайте пару ключей, если у вас ее еще нет, и добавьте ее в ~/.ssh/authorized_keys. Я предполагаю запись в ~/.ssh/config примерно так:

Host mysite
HostName mygodaddysite.com
User mylogin

Шаг 1. Установите Git

После того, как я зашел на мой хост GoDaddy, я обнаружил, что он запускает CentOS 5.2. Бинартеры, работающие на моем ноутбуке, не совместимы, поэтому я использовал VirtualBox для установки локальной установки Centos 5.2 и сборки Git. Я делил tarball, содержащий предварительно созданные CentOS 5.2 Git двоичные файлы. Вы должны иметь возможность загружать и устанавливать с помощью команд:

wget http://johntrammell.com/centos5.2-git.tar.gz
tar xzf centos5.2-git.tar.gz

Наслаждайтесь этой частью - Ive спас вам пару часов работы здесь.

Шаг 2. Настройте среду.

Добавьте в свой .bash_profile следующее:

export EDITOR=vim
export PATH=$PATH:$HOME/bin:$HOME/libexec/git-core
export LD_LIBRARY_PATH=$HOME/lib
export GIT_EXEC_PATH=~/libexec/git-core
export GIT_TEMPLATE_DIR=~/share/git-core/templates

Это правильно настроит вашу среду на интерактивной оболочке. К сожалению, я не могу заставить PATH правильно установить неинтерактивные команды SSH. Например, когда я запускаю эту команду с моего ноутбука:

ssh mysite env

Я вижу PATH по умолчанию. Это также имеет место, когда я устанавливаю путь в .bashrc. Я не обнаружил, что именно SSH делает для неинтерактивного доступа, но это может быть связано с параметром PermitUserEnvironment в sshd. К счастью, мы можем обойти это.

Шаг 3. Создание репозитория

Войдите в свою учетную запись GoDaddy и создайте простой "голый" репозиторий Git:

% mkdir myrepo
% cd myrepo
% touch README
% git init
% git add README
% git commit -m 'empty git repository'
% cd ..
% git clone --bare myrepo myrepo.git

Теперь у вас есть голый репозиторий в ~/myrepo.git/ в корне вашей учетной записи GoDaddy.

Шаг 4. Проверка вашего репозитория

Единственная сложная часть этого - рассказать Git, где найти git -upload-pack. Это работает вокруг проблемы PATH, упомянутой выше. На вашей локальной машине сделайте следующее:

git clone -u libexec/git-core/git-upload-pack mysite:myrepo.git

Теперь вы должны получить копию исходного минимального репозитория.

Шаг 5. Дополнительные настройки Git конфигурации

К сожалению, мы не делаем:

% cd myrepo
% echo "foo" > README
% git commit -am 'updated'
[master 044c086] updated
 1 files changed, 1 insertions(+), 0 deletions(-)
% git push
bash: git-receive-pack: command not found
fatal: The remote end hung up unexpectedly

Наши проблемы PATH теперь мешают операции push. В качестве обходного пути мы можем либо указать -receive-pack в командной строке, либо установить его в локальной конфигурации (то же самое относится к операциям выборки и -upload-pack):

% git config remote.origin.receivepack libexec/git-core/git-receive-pack
% git config remote.origin.uploadpack libexec/git-core/git-upload-pack

Поздравляем, вы должны работать и сейчас!

Ресурсы

Ответ 2

Во-первых, вам нужно будет установить git на GoDaddy. Я не уверен, что это возможно. git поддерживает локальные пользовательские установки, но для этого вам нужны определенные средства разработки. Загрузите git и посмотрите, можете ли вы ./configure && make && make install - если это так, он поместит его в ваш каталог ~/bin.

Мы широко используем git для управления производством. Но вместо того, чтобы развертывать при нажатии, могу ли я предложить вам ssh в поле и сделать git pull?

В частности, создайте ветвь "Release", а затем, когда вы будете готовы к развертыванию, просто объедините свои изменения в ветки Release, ssh на сервер и git pull.

Например

ssh [email protected]
cd /path/to/project

#ok, assuming you are on the Release branch
git fetch
git merge branch-with-new-changes-on-it

# update the remote Release branch with the merge
git push origin HEAD

Этот простой рабочий процесс позволяет разработчикам постоянно видеть точно, что на рабочем сервере, и объединить другие изменения с их запросами, прежде чем запрашивать развертывание. Фактически, мы требуем, чтобы все производственные изменения были полностью объединены, прежде чем запрашивать развертывание вашего ветки.

-

Если вам удастся установить git на GoDaddy, и вы действительно хотите автоматически развернуть его, когда вы нажимаете на него, посмотрите на post-update hook.

http://git-scm.com/docs/githooks

-

Если вы не можете установить git на GoDaddy, посмотрите, поддерживают ли они rsync. Тогда вы можете иметь простой bash script, где будет

  • потяните ваши изменения.
  • rsync их для godaddy

-

Есть много способов сделать это. Возможно, это немного поможет в руководстве...

Ответ 3

Я успешно прошел следующие указания:

http://www.krizka.net/2010/12/30/setting-up-a-public-git-repository-with-godaddy-shared-hosting/

Ключи (для меня) были

  • Получение предварительно скомпилированного бинарного файла для CentOS (из ссылки выше)
  • Настройка "uploadpack" и "receivepack". Это шаг 1 в разделе "Предоставление локальному значению git о удаленном git" ближе к концу сообщения.

Ответ 4

I maitain git локально и использовать scp для push live... это не изящно, но godaddy имеет scp, установленный по умолчанию.

"scp -r fooDirectory [email protected]:/path/to/document/root/"

который переместит локальный каталог "fooDirectory" в "/path/to/document/root/fooDirectory" на удаленном хосте.

когда вы вошли в систему go daddy, используйте "pwd

Ответ 5

Подключить через ssh.

Установите git в ~/ git.

После этого создайте/обновите эти файлы:

~/.ssh/authorized_keys

command="~/connect.sh" ssh-rsa AAAAB3NzaC...

~/connect.sh

#!/bin/bash
if [ -f "${HOME}/.env_profile" ]; then
        source ~/.env_profile
fi;

if [ "x${SSH_ORIGINAL_COMMAND}x" == "xx" ]; then
        $SHELL --login
else
        eval "${SSH_ORIGINAL_COMMAND}"
fi;

~/.env_profile

export ENV_VARIABLE=value

git:

export PATH=$PATH:$HOME/bin:$HOME/git/libexec/git-core
export LD_LIBRARY_PATH=$HOME/git/lib
export GIT_EXEC_PATH=~/git/libexec/git-core
export GIT_TEMPLATE_DIR=~/git/share/git-core/templates

Я потратил около недели на это, но теперь он работает как шарм... Я не думаю, что есть еще одно решение от аккаунтов godaddy, возможности слишком ограничены ими...

Ответ 7

Существует учебник YouTube, в котором объясняется, как настроить Git в учетной записи Godaddy Shared Hosting. Ссылка здесь: http://youtu.be/z60GLfsGGsY

Существует также веб-страница с командами, которые вам нужно выполнить на видео. Вот адрес страницы: http://www.drupalfever.com/linux-how-to/git/set-up-git-in-a-godaddy-shared-hosting-account

Если у вас есть какие-либо вопросы, оставьте мне примечание или предложение.

Ответ 8

Инструкции в этом блоге работали для меня, за исключением того, что мне пришлось посетить EPEL и найти самую новую версию git RPM: http://hire.chrisjlee.net/node/139

Получить двоичные файлы

cd ~
mkdir git
cd git
# Download the rpm from EPEL ( http://fedoraproject.org/wiki/EPEL )
# Find the latest version by checking http://dl.fedoraproject.org/pub/epel/5/i386/
wget http://dl.fedoraproject.org/pub/epel/5/i386/git-1.8.2.1-1.el5.i386.rpm
# Extract binaries from the rpm
rpm2cpio git-1.7.4.1-1.el5.i386.rpm  | cpio -imdv
rm git-1.7.4.1-1.el5.i386.rpm

Настройка

echo "
export GIT_BIN=${HOME}/git
export PATH=${GIT_BIN}/usr/bin:${PATH}
export GIT_EXEC_PATH=${GIT_BIN}/usr/bin
export GIT_TEMPLATE_DIR=${GIT_BIN}/usr/share/git-core/templates
export GIT_SSL_NO_VERIFY=true" >> ~/.bashrc

Настроить git

mkdir ~/.git
git config --local --add remote.origin.uploadpack ~/git/usr/bin/git-upload-pack
git config --local --add remote.origin.receivepack ~/git/usr/bin/git-receive-pack

Ответ 9

Мне пришлось настроить git на VPS, размещенную на http://netgonian.com (реселлер GoDaddy). То, что заняло 3 часа, могло быть сделано примерно за 15 минут и было очень просто.

Установка git должна быть такой же простой, как запуск yum install git, но, к сожалению, попытка, которая давала мне всевозможные ошибки, не могла найти ошибки файла. Ниже было окончательное решение.

Вот шаги:

  • ssh на ваш виртуальный сервер
  • перейдите к пользователю root с помощью команды su -
  • следуйте инструкциям здесь, чтобы создать новый файл centos-base.repo
  • в том же каталоге, где вы только что создали указанный файл (/etc/yum.repos.d), переименуйте файл CentoOS-Base.repo в CentOS-Base.repox
  • теперь вы можете запустить yum install git, и он будет работать.

Основная проблема заключалась в том, что все базовые URL-адреса для yum указывали на какой-то сервер на secureserver.net, в котором отсутствовали все необходимые файлы. То, что мы делаем выше, указывает на базовые URL-адреса для серверов, которые имеют необходимые файлы.