Можно ли перенести мой код с моего сервера на Github? - PullRequest
3 голосов
/ 08 января 2011

Я использовал Github несколько месяцев назад, но только между моим компьютером и Github .Теперь я хочу отправить код с моего сервера на Github .Причина этого в том, что я сейчас работаю по-другому.В настоящее время я сохраняю свой код непосредственно на моем сервере , предоставленном моим хостинг-провайдером.

Возможно ли перенести мой код с моего сервера на Github?

Также я должен упомянуть, что в настоящее время у меня есть только FTP-доступ к моему серверу и я использую FileZilla для подключения.

ОБНОВЛЕНИЕ

Я пошел на канал # git IRC и узнал от некоторых людей, что невозможно использовать git без возможности SSH со своего сервера.Я связался со своим хостом, чтобы узнать, могу ли я использовать SSH с сервера и установить там git?

Ответы [ 5 ]

4 голосов
/ 08 января 2011

Это можно сделать разными способами.

  1. Если у вас есть доступ к вашему серверу с помощью командной оболочки (или удаленного рабочего стола, или чего-то еще), вы можете просто запустить там git-репозиторий.
  2. Если у вас есть доступ по ftp, вы можете сопоставить свой ftp как диск с чем-то вроде NetDrive ( эта статья объясняет, что ), а затем использовать тот же метод, который вы обычно делаете, но с вашим подключенным диском

В другой заметке я бы сказал, что лучшим вариантом будет сделать это по-другому: работать локально и написать скрипт, который обновляет ваш веб-код, когда вы что-то делаете.Это будет вариант?

3 голосов
/ 08 января 2011

Если у вас есть доступ к серверу вашего хост-провайдера, я предлагаю настроить перехват после получения.

Я предполагаю, что у вашего сервера есть разрешение на отправку в репозиторий github, в противном случае следуйте официальной документации GitHub сначала.

На вашем сервере создайте <path-to-repo>/hooks/post-receive, содержащий:

#!/bin/sh
echo "Pushing $3 $1 to github."
git push github $3

Дайте ему разрешение на выполнение:

chmod +x <path-to-repo>/hooks/post-receive

Добавить github в качестве удаленного хранилища:

cd <path-to-repo>
git add remote github git@github.com:<username>/<repo-name>.git

Тогда каждое нажатие на ваш сервер приведет к отправке в сконфигурированный репозиторий github.

2 голосов
/ 08 января 2011

В GitHub загрузите на сервер «открытый» ключ ssh (в разделе параметров учетных записей).

На своем сервере вы можете клонировать репозиторий GitHub и просто скопировать данные сервера в этот репозиторий, а затем нажать?Таким образом, GitHub теперь обновляется вместе с копией вашего сервера.Теперь вы можете разрабатывать на своем сервере или на своем персональном компьютере, так как оба репозитория клонированы из GitHub.

Если то, что вы делаете для производства (запускается в прямом эфире), я бы порекомендовал иметь какой-то сценарий для публикации ваших результатов вместо того, чтобы разрабатывать его непосредственно на живом сервере.

Мой рабочий процессследующее:

  1. Клонируйте проект GitHub в мой дом.
  2. Создайте две ветви, главную ветвь и производственную ветвь на GitHub.
  3. Создайте Git Hook, когда что-тоБудучи перенесенным в производственную ветку, он автоматически развернет содержимое на сервере.
  4. Я продолжаю разработку в основной ветке, а когда наступает время выпуска, я просто объединяю ее с производственной веткой.
1 голос
/ 08 января 2011

Конечно.

Вам нужно как-то иметь свой SSH-ключ. Вы можете скопировать его на сервер или включить переадресацию агента - например, делая "SSH-A ...". Читайте о последнем здесь - http://unixwiz.net/techtips/ssh-agent-forwarding.html

1 голос
/ 08 января 2011

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

...