Использование git для объединения изменений в скопированном вручную каталоге - PullRequest
1 голос
/ 29 апреля 2020

На работе я сохраняю резервную копию большого каталога на нашем удаленном VPS, используя git. Поскольку я живу в очень отдаленном городе с плохим, дорогим inte rnet, я не могу скопировать этот репо через inte rnet. Вместо этого, когда я начал работать из дома, я принес копию каталога на внешний диск (к сожалению, без подкаталога «. git»).

Я внес около 10 КБ изменений в файлы в моей домашней копии каталога. Я хотел бы объединить их в репозиторий git на удаленном сервере без передачи всего каталога через inte rnet.

Шаги на данный момент:

git init
git add .
git commit -m "initial"
git remote add VPS [SSH_ADDRESS]
git remote show VPS   # successfully connects to remote

Теперь я хотел бы объединить 10 КБ изменений, которые я сделал локально, без передачи ГБ данных без изменений.

Шаги, которые я пытался, но не смог:

git push VPS   # can't because there are non-integrated remote changes
git fetch VPS  # starts downloading GBs of data

Не уверен, где go следующий.

1 Ответ

0 голосов
/ 29 апреля 2020

Хакерский подход, который пытается передать как можно меньше данных, не используя методы транспорта git, которые могут работать или не работать:

  • генерирует исправления вашей локальной работы (git format-patch)
  • сжать эти патчи (tar или zip)
  • отправить их на удаленный сервер (scp или rsync)
  • login к удаленному серверу (ssh)
  • примените исправления (unzip / tar с последующими git apply), исправьте конфликты и отредактируйте историю по своему вкусу

Это приведет к тому, что ваша локальная копия не будет синхронизирована c, как и раньше.


Предполагая, что "ГБ данных" - это большие файлы, а не много небольших изменений / файлов, вы можете обойтись без сохраните их в фактическом git репо.

Существует несколько подходов к этой проблеме, из которых я не пробовал ни один, но вот некоторые довольно хорошо известные:

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