Я использую для разности мерзавца для генерации патчей, которые могут быть применены к удаленному серверу для обновления проекта.
Локально, я работаю:
git diff --no-prefix HEAD~1 HEAD > example.patch
Загрузите example.patch на удаленный сервер и работайте:
patch --dry-run -p0 < example.patch
Если пробный прогон успешен, я работаю:
patch -p0 < example.patch
Это работает хорошо, кроме тех случаев, когда разность включает двоичные файлы. Сегодня, я нашел, что могу использовать:
git diff --no-prefix --binary HEAD~1 HEAD > example.patch
Проблема состоит в том, что сгенерированный файл исправления не может быть применен с помощью патча.
Как я могу применить эти двоичные файлы исправления, не устанавливая мерзавца сервер?
Я хотел бы поддержать способность использовать пробный прогон.
Спасибо
Для ответа на странный вопрос вы можете использовать sshfs для монтирования удалённой системы, где бы у вас ни был git, а затем выполнять команды в этом направлении. Подойдите к проблеме с другой точки зрения: Вместо того, чтобы задаваться вопросом, как выполнять команды там, где нет инструмента, почему бы не создать среду, в которой данные будут поступать к вашему инструменту ( через sshfs ? )
.Используйте это
git apply example.patch
git add --patch
git commit
Вы можете опустить флаг --patch, но вы не увидите все изменения и не будете проверять процесс установки исправлений.
Во многих ситуациях и в этом тоже нельзя создавать данные с помощью более продвинутого инструмента и использовать их с менее продвинутым. Счастливым совпадением является то, что patch
работает для небинарных git-диффов. git diff
вводит расширение к стандартной diff.
Для достижения этой цели вы можете:
scp
/rsync
новые файлы. Неплохо для маленьких.