Git Merge не содержит мои изменения - PullRequest
0 голосов
/ 02 ноября 2011

У меня есть две ветки git B1 и B2. B2 имеет самую новую копию моего файла F. Когда я объединяю B2 с B1 (git checkout B1 && git merge B2), журнал для F (git log F) не содержит никаких коммитов, которые были сделаны на B2. Я вижу только коммиты C1-C3, которые существовали ранее на B1. Но когда я делаю (git log --follow F), я вижу коммиты на B1 из B2, C4-C6. Однако, когда я открываю файл F, чтобы проверить его, он не содержит изменений из коммитов C4-C6. Что происходит?

Ответы [ 2 ]

1 голос
/ 03 ноября 2011

Вам не нужно использовать «follow», если вы не переименовали файл.Попробуйте git log B1 -- F просто отфильтровать, повлиял ли коммит на этот файл.

Также используйте git blame F, чтобы увидеть, из каких коммитов поступили текущие строки в файле.

Как вы говорите, историяэто довольно сложно.Если бы произошли конфликты в слияниях, вы могли бы принять «их» сторону конфликта, и это стерло бы видимость изменений, внесенных в текущую историю ветвей.

0 голосов
/ 03 ноября 2011

У меня возникла такая же проблема после создания ветви и слияния, проблема в том, что git выполняет ускоренную перемотку вперед, когда ваш мастер доступен из ветви.

Для регистрации этого у вас есть аргумент

git merge --no-ff B2

Удачи.

...