git pull фатальная ошибка сервера репо - PullRequest
1 голос
/ 29 февраля 2012

Моя цель - установить репо на моем лабораторном сервере, который я могу клонировать на своем ноутбуке через ssh. Я все еще хочу рабочую копию на сервере. Вот что я сделал:

Сервер:

mkdir myProject

git --init

(добавить несколько файлов и зафиксировать их, чтобы они не были пустыми)

git clone --bare ~ / myProject / .git / ~ / git / myrepo.git

ноутбук

git clone erin@labserver.edu: /home/erin/myrepo.git

git add file1

git commit

git push

Сервер:

git pull

тогда я получаю эту ошибку:

роковым: откуда ты хочешь забрать сегодня?

У вас есть представление о том, что может быть не так? Я попытался следовать указаниям ветвления / постановки / перебазирования здесь , но это не решило проблему. Также

мастер происхождения git pull

тоже не починил.

1 Ответ

0 голосов
/ 29 февраля 2012

Я выполнил шаги, которые вы перечислили, и не могу воспроизвести полученную ошибку (fatal: Where do you want to fetch from today?). Однако, если вы выполнили шаги, которые вы написали в вопросе, server не имеет удаленных репозиториев - git pull не будет работать, потому что server не имеет удаленных пультов для извлечения от. Я думаю, что это причина ошибки, которую вы получаете.

На данный момент у вас есть три хранилища: на сервере : myProject, myRepo и на ноутбуке myRepo (клон из server) , Если мое понимание вопроса верно, вы хотите использовать myProject (на server) и myRepo (на Laptop) для работы. Я предполагаю, что у вас есть myRepo (на server) в качестве плацдарма, с которого вы можете git push и git pull; вы сделали это правильно, потому что вы настроили его как --bare хранилище, что является разумным шагом.

Если вы будете следовать инструкциям triad в его ответе, вы получите два хранилища: server, которое является --bare хранилищем, и laptop. Если вам удобно переустанавливать свои репозитории, я бы следовал инструкциям triad, примерно так:

  1. Создайте --bare хранилище где-нибудь. Это будет плацдарм. Назовите это чем-нибудь полезным, например, bareRepository или как-то еще.
  2. У вас есть хранилище с какой-то работой. В этом хранилище (на server или laptop) добавьте bareRepository в свой список удаленных устройств: git remote add <name> <url>.
  3. git push ваша работа из хранилища в (2) до bareRepository. Это обеспечит актуальность bareRepository и все такое.
  4. Поскольку вы не можете работать с bareRepository, снова клонируйте его, на котором когда-либо на компьютере нет рабочего репозитория (server или laptop). Поскольку вы клонируете bareRepository, git будет обрабатывать bareRepository как origin; Вы можете git push origin и git pull origin по своему усмотрению, не путая репозиторий с рабочим деревом.
  5. После того как вы настроили два рабочих репозитория (один на laptop, один на server) и --bare репозиторий (на laptop или server), вы сможете синхронизировать твоя работа счастливо
    • сделать какую-то работу
    • git commit работа
    • git push origin - получить работу в голом репо
    • На другом компьютере: git pull origin для обновления вашей ветки.
...