Получите разницу между двумя ветвями в Git - программирование
Подтвердить что ты не робот

Получите разницу между двумя ветвями в Git

Я сделал следующее (я упростил это по сравнению с реальностью):

  • создал ветвь Branch1, переключился на нее
  • добавлен файл File1 и изменен существующий файл File2 и совершил этот
  • понял, что мне не нужен File1, удалил его и совершил этот

Итак, фактическая разница между исходной ветвью и Branch1 - это только модификация File2.

Я хочу получить эту фактическую разницу между ветвями и поместить в Branch2. Вообще говоря, я хочу избавиться от ненужной истории добавления/удаления File1.

4b9b3361

Ответ 1

Предположим, что вы начали с ветки master. Затем вы можете сделать:

git diff master Branch1 > ../patchfile
git checkout Branch2    
git apply ../patchfile

В качестве альтернативы, если ваша цель состоит в том, чтобы переписать историю, вы можете использовать интерактивную rebase для компрометации.

Ответ 2

Это простой git diff

git diff --name-only SHA1 SHA2

Где SHA1/2 - хэши из 2 коммитов в верхней части каждой ветки.