Можно ли заменить файлы из разных коммитов в git «унифицированным» патчем? - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть git-репозиторий с разными тегами / коммитами, и я хочу заменить Makefile (он отличается в каждой версии).

Во всех этих версиях с моим собственным Makefile.
Можно ли написать только один файл патча, который можно применить ко всем этим коммитам / тегам, которые будут «удалять» отдельный Makefile и «вставлять» мой?

1 Ответ

0 голосов
/ 10 ноября 2018

Простой ответ - нет.

Почему ты не можешь?

Если вы хотите обновить несколько коммитов, вы должны обновить их каждый в отдельности из-за того, как git хранит дату (слишком долго, чтобы объяснить, как это сделать)

Что вы можете сделать?

Вы можете написать скрипт для этого.

Сценарий должен выглядеть примерно так:

# loop on your commits and update the desired file
git filter-branch --index-filter 'mv "new-file" "old_file"' HEAD

Примечание:

Вы можете использовать --tree-filter и --index-filter с git filter-branch.
--index-filter быстрее и обновит ваш индексный файл

...