Как перенести работу в мой личный репозиторий, одновременно получая обновления от Github? - PullRequest
0 голосов
/ 30 августа 2018

Я начинаю с того, что говорю, что я в замешательстве. Я знаю, что я думаю Я хочу сделать, но я даже не знаю, как это сделать.

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

Или, может быть, вы скажете мне - ...

Существует публичное репозиторий Github - шаблон для веб-приложения (https://github.com/WHMCS/templates-six)

  • Мне нужно клонировать этот репозиторий (а также иметь возможность постоянно обновлять и обновлять его)
  • Мне нужно иметь возможность изменить этот репозиторий на моей (Windows) рабочей станции дома
  • Мне нужно иметь возможность хранить моё модифицированное репо на моем веб-сервере [общего хостинга]. (доступ по FTP или SSH только через Интернет)
  • Я не хочу входить на веб-сервер отдельно для отправки / извлечения / синхронизации изменений; это должно быть синхронизировано автоматически. Поскольку мне на самом деле не нужны изменения локально (я не могу запустить приложение локально, только на веб-сервере), я думаю, что мое «локальное» хранилище должно просто жить в этой файловой системе, но, возможно, это предположение неверно.
  • Если когда-либо возникают какие-либо конфликты, я должен иметь возможность разрешать их, не забивая мои локальные файлы и, возможно, даже не принимая изменения из апстрима.

Я попытался выполнить поиск (здесь, google, github help docs, другие), но я думаю, что, возможно, терминология продолжает портить меня, и я не нахожу свой сценарий. Между местными и удаленными пользователями, клиентами, репозиториями и вилками я заблудился. А может это невозможно? ИДК.

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

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Предлагаю вам прочитать первые три главы Pro Git . Он бесплатный онлайн и охватывает большинство команд, необходимых для выполнения подобных задач. Это не очень долго. Просто читайте немного каждый день, и, прежде чем вы это узнаете, вы станете мастером Git. В конце концов вам также понадобится прочитать некоторые из последующих глав об использовании git на сервере.

0 голосов
/ 30 августа 2018

Это на самом деле довольно просто с Git. Есть много способов сделать это; вот что я бы сделал:

  1. Клонируйте репо на свою рабочую станцию, где бы вы ни хотели, чтобы проект жил. git clone git@github.com:WHMCS/templates-six.git
  2. Теперь cd templates-six. С этого момента мы будем запускать наши команды git внутри этой папки репозитория.
  3. По умолчанию git создал remote с именем origin. Для ясности, мы собираемся переименовать его. Выполнить git remote rename origin github
  4. Создайте пустой репозиторий на своем веб-сервере общего хостинга. Называй как хочешь. Может быть способ сделать это в пользовательском интерфейсе, или вы можете сделать это в терминале с помощью чего-то похожего на git init --bare foobar.git.
  5. Вернитесь на свою рабочую станцию, добавьте общий веб-сервер в качестве удаленного. Вам нужно будет определить подходящий адрес для использования здесь, но он должен быть похож на этот, который использует SSH (так же, как вы использовали бы для входа). git remote add webserver ssh://joelaz@sharedhost.com:/home/joelaz/foobar.git
  6. Нажмите master ветку до веб-сервера. git push webserver master:master. Если по какой-то причине это не сработает, попробуйте -f, так как на удаленном сервере нет истории, которая вас волнует.
  7. Я бы установил ветку upstream для вашего собственного веб-сервера. git branch -u webserver/master. Теперь по умолчанию git push будет загружен на ваш веб-сервер.

С этой настройкой, когда вы хотите получать обновления от Github, вы можете git fetch github, а затем git merge github/master, который объединяет главную ветвь github с вашей локальной локальной ветвью. Наконец, как и прежде, git push отправляет его на ваш веб-сервер. Вам придется поддерживать код на своей рабочей станции (что, вероятно, в любом случае является хорошей идеей), и вы внесете изменения и исправите конфликты слияния, прежде чем перевести код в webserver с помощью git push.

.

Чтобы помочь вам понять, что происходит, имейте в виду, что каждое из 3 хранилищ (Github, рабочая станция, сервер) поддерживает свою собственную копию кода и собственную копию любых веток. Вы перемещаете код между хранилищами, вытягивая и выталкивая из хранилища на своей рабочей станции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...