У меня есть ветка, которую я хотел бы перебазировать в последний коммит на моем мастере. Проблема в том, что одним из промежуточных коммитов на master было удаление и игнорирование определенного набора файлов (см. этот вопрос ).
Если я просто сделаю прямую перезагрузку, эти файлы снова будут удалены. Есть ли способ сделать это, внутри git, вместо того, чтобы копировать все файлы вручную, а затем снова копировать их обратно?
Или я должен сделать что-то вроде создания новой ветви из master, а затем объединить только коммиты из старой ветви?
Попытки ascii art:
master branch
| w work in progress on branch
C | committed further changes on master
| |
B / committed delete/ignore files on master
| 2 committed changes on branch
| /
A / committed changes on master which I now need to get branch working
| 1 committed changes on branch
0___/ created branch
(Занимаясь искусством, я понимаю, что могу просто перебазировать ветвь из А, а затем объединить, когда я закончу, но я все еще хотел бы знать, есть ли способ сделать это «правильно») 1015 *
ОБНОВЛЕНИЕ Предупреждение всем, кто пытается это сделать. Предлагаемое здесь решение подходит, но когда вы снова извлекаете master, повторная фиксация B будет применена, и вы снова потеряете все свои файлы: (