Как экспортировать все измененные/добавленные файлы из Git?
Я очень новичок в Git, и у меня небольшая проблема.
В SVN [это похоже на историю "Только дураков и лошадей" дяди Альберта... во время войны... "], когда я хотел обновить производственный сайт своими последними изменениями, я бы сделал разницу в TSVN и экспортировать все измененные/добавленные файлы между двумя версиями. Как вы можете себе представить, после этого эти файлы можно было легко загрузить на производственный сайт.
Однако, похоже, что я не могу найти опцию "экспортированные измененные файлы" в Git. Я могу сделать diff и увидеть изменения, я могу получить список файлов, но я не могу их экспортировать. Есть ли разумный способ сделать это? Я пропустил что-то простое?
Чтобы еще раз пояснить, мне нужно экспортировать все изменения между двумя конкретными коммитами.
Спасибо заранее!
Ответы
Ответ 1
Как вы хотите экспортировать их? Вы говорите, что у вас уже есть список; что еще ты хочешь? Предположим, что вы получаете свой список с помощью git diff --name-only ...
git archive --output=<file> HEAD $(git diff --name-only ...)
tar -czf <file> $(git diff --name-only ...)
cp $(git diff --name-only ...) <export-directory>
Что-то вроде этого?
Или вы даже можете использовать diff diff - он может применяться с git apply
(или даже patch
, я полагаю).
Ответ 2
Заимствование из нескольких ответов в здесь, вот еще один способ экспортировать файлы, которые были изменены в рабочей области:
git diff --diff-filter=ACMRT --name-only HEAD | xargs tar -rf export.tar
Возможно, вам понадобится выполнить следующее заранее, чтобы добавить ненужные файлы, если вам нужно включить их в diff:
git add *
[Это работает в git - bash в Windows]