Вы должны серьезно подумать о настройке правильного сервера git, поскольку передача изменений через FTP лишает смысла использование системы контроля версий, такой как git.Предполагая, что у всех есть SSH-доступ к серверу, его довольно просто настроить, вам просто нужно создать пустой репозиторий в каталоге на сервере, к которому у всех был бы доступ для чтения и записи.Также возможно выполнить настройку, не предоставляя всем доступ к оболочке.
Подробнее о настройке git-сервера можно прочитать в бесплатной Pro Git book , в которой подробно описываются несколько различных техник.Вы также можете использовать размещенный сервис git, если вы предпочитаете идти по этому пути.
При этом ответ Мэтта верен и, скорее всего, это и произошло: вы случайно переписали каталог, который использует git для отслеживания информации о локальномрепозиторий.
Если то, что есть в GitHub, все еще хорошо, вы можете сделать git fetch
затем git reset origin/master
, чтобы вернуть локальный репозиторий в состояние удаленного репо на GitHub, и он сохранит все локальные различия,Это приведет к потере любых локальных коммитов, которые не были переданы на GitHub, но не приведет к потере данных локально.Если вы сделали push-up на GitHub уже после случайной перезаписи, это, вероятно, не поможет (скорее всего, вы не смогли бы этого сделать без явного --force
в push-сообщении).В качестве альтернативы вы можете сделать сброс на конкретный коммит, указав хеш коммита вместо «origin / master».