Избегайте загрузки git -ftp, если файлы уже находятся на сервере

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

Сначала я бы использовал:

$ git ftp init -u <user> -p - ftp://host.example.com/public_html

который будет загружать все мои файлы на сервер и использовать git push для будущих загрузок, правильно?

Но что, если у меня уже есть копия на моем сервере и вы хотите настроить ее локально? Я попытался загрузить мои файлы приложений, использовал git init, нажал все на github, а затем, когда я попытался использовать git ftp push, я получил эту ошибку:

fatal: Could not get last commit. Network down? Wrong URL? Use 'git ftp init' for the inital push., exiting...

Затем я использовал команду git ftp init, и она сработала, но она повторно загрузила все.

Есть ли способ установить это без необходимости повторной загрузки всего и просто начать использовать git ftp push?

Ответ 1

На странице man для git-ftp:

catchup
    Uploads current SHA1 to log, does not upload any files.

    This is useful if you used another FTP client to upload the
    files and now want to remember the SHA1.

Итак, если вы уверены, что ваш репозиторий git синхронизируется с FTP-сервером, запустите git ftp catchup вместо git ftp init в первый раз, и он загрузит текущий хеш-код на сервер, но не изменит любые файлы. После этого используйте git ftp push для синхронизации будущих транзакций с ним.