Каковы начальные шаги для настройки git-репо на GitHub и моем частном сервере? - PullRequest
0 голосов
/ 24 августа 2018

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

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

ЧтоЯ знаю (или думаю, что знаю)

  • Я могу очень легко создать новый (частный) репо на GitHub.Я все понял, используя API GitHub, и, похоже, он работает нормально.(Я думал, что это будет очень сложная часть, но это было довольно легко.)

  • Я понимаю, что добавить эту часть:

git remote set-url origin --push --add <a remote> git remote set-url origin --push --add <another remote>

Чего я не знаю

Проблема в том, что я не могу понять, как настроить репо на не-GitHub сервере.

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

Однако я не могу понять, какие правильные команды являются для того, чтобынастройте исходный git-репозиторий так, чтобы он принимал изменения, которые я хочу push.

Я пытался запустить git clone и git pull и git init на сервере, но онивсе это приводило к ошибкам при попытке push дополнительных изменений.

Я наконец-то запустил git init --bare, который, кажется, работал так же, как и при отсутствии push, но никаких ошибок нет«не git» файлы из репозитория фактически присутствуют в папке на сервере, это просто специфичные для git файлы:

HEAD
branches/
config
description
hooks/
info/
objects/
refs/

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

Я был по всему Google и stackoverflow.com в поисках решений, но я должен бытьпропустить что-то фундаментальное здесь.У меня есть только базовые знания git (достаточно, чтобы быть опасным, как говорится).

Спасибо за ваше время и внимание.

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

1 Ответ

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

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

cd /path/to/working/tree
git --git-dir=/path/to/bare/repo/.git --work-tree/path/to/working/tree checkout -f

Вы будете видеть свои файлы там, каждый раз, когда вы продвигаетесь к этому голому репо.

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