Используйте git для создания папки для загрузки через FTP - PullRequest
0 голосов
/ 19 февраля 2020

У меня есть PHP проект (плагин WordPress). Когда мне нужно опубликовать sh этот проект на удаленном тестовом или производственном сервере, я должен отправить файлы через обычный FTP. Чтобы не загружать все файлы, я хотел бы получить только измененные файлы из последней сборки.

Есть ли способ использовать GIT, чтобы, с учетом двух разных веток или фиксаций, создать папку с файлами, измененными или добавленными между этими двумя ветками / коммитом. Это дало бы мне все файлы, которые я должен загрузить.

Я пытался использовать git diff branch1..branch2 > result.diff, но это дало бы мне один текстовый файл со всеми изменениями, и это не помогло бы с процессом загрузки по FTP. Я хотел бы скопировать все измененные / добавленные файлы в папку, следуя той же структуре папок, чтобы я мог просто загрузить эту папку.

Редактировать:

На основе @ LeGE C ответ, я написал небольшую утилиту командной строки, которая читает результаты gitDiff и создает папку с файлами. Если кому-то интересно, это на GitHub:

https://github.com/marlonbrum/Br1.GitPack

1 Ответ

1 голос
/ 19 февраля 2020

Вы можете попробовать один из:

git diff --name-only
git diff --name-status

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


git diff также имеет опцию --diff-filter, которую вы в этой ситуации, вероятно, захотите объединить с --no-renames, чтобы переименованный файл правильно появился в списке «удаленных»:

# list the files whose content has been modified, and should be copied :
git diff --no-renames --name-only --diff-filter=ACM

# list the files that have been deleted from the repo, and should be *removed* :
git diff --no-renames --name-only --diff-filter=D
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...