git pull серверный репозиторий с фатальной ошибкой

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

сервер:

mkdir мой проект

git --инит

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

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

ноутбук:

клон git [email protected]:/home/erin/myrepo.git

git добавить файл1

git совершить

git push

сервер:

git тянуть

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

Fatal: Откуда вы хотите получить сегодня?

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

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

тоже не исправил.


person erin    schedule 29.02.2012    source источник


Ответы (1)


Я выполнил перечисленные вами шаги и не могу воспроизвести ошибку, которую вы получаете (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. Если вам удобно перенастраивать свои репозитории, я бы следовал инструкциям triads, примерно так:

  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. Once you've set up the two working repositories (one on laptop, one on server) and a --bare repository (on either laptop or server), you should be able to sync your work happily:
    • do some work
    • git commit работа
    • git push origin — получить работу в голом репо
    • На другом компьютере: git pull origin для обновления вашей ветки.
person simont    schedule 29.02.2012