Как сохранить ваш git fork в чистоте от дублирующих коммитов? - PullRequest
1 голос
/ 14 февраля 2011

Я часто сталкиваюсь с проблемой дублирующих коммитов при поддержке вилок с помощью git.

Допустим, я разветвил репозиторий и зафиксировал исправление.Я помещаю изменения в свой разветвленный репозиторий и вижу изменения на github.Пока все хорошо.

Проблема заключается в том, что сопровождающий проекта объединяет мое исправление со своей веткой, а позднее я обновляюсь, чтобы синхронизироваться с основным проектом.Мое исправление появилось бы дважды в моей истории, оригинале и времени, когда оно было объединено сопровождающим проекта.

Есть ли решение для этого?Было бы хорошо, наконец, очистить мое дерево.

1 Ответ

3 голосов
/ 15 февраля 2011

Были ли эти коммиты выбраны вишней, а не объединены?Если вы объединяете одни и те же коммиты в две ветви, а затем объединяете один из них в другой, коммиты не появляются дважды.В истории вы увидите именно то, что ожидаете - два коммита слияния с данным коммитом в качестве родителя, затем эти две ветви в конечном итоге слились:

- o - o - o - o - o - o - o 
   \   \         /       /
    \   o - o - o       /
     \           \     /
      o - o - o - o - o

Это действительно хорошая причина для слияния вместо cherry-выбор - и чтобы облегчить это объединение, важно убедиться, что ветки вашей темы начинаются с общего предка всех ветвей, которые могут захотеть объединить их, чтобы эти функции / исправления можно было объединить аккуратно, не поднимая ничего другого.

Примечание от операции : коммиты были применены из очереди вил Github, которая использует вишневый пик за кулисами.Принято, спасибо.

...