2017-01-07 1 views
0

Я работаю над веткой Git под названием bug-fix-1, которую я создал на основе integration. Была еще одна ветка bug-fix-2, которая была объединена в ветку integration, а затем мы вернули изменения (все было сделано на Github).GitHub не распознает изменения из запроса на возврат назад

Теперь, когда я выставил новый запрос на растяжение, чтобы объединить мой bug-fix-1 в integration, я ожидаю увидеть изменения, которые я вытащил из bug-fix-2. Но нет, я не вижу никого из них, запрос на тягу показывает только изменения, внесенные мной на bug-fix-1.

Любое решение о том, как я могу внести изменения с bug-fix-2 в свою ветку и объединить их вместе с integration?

ответ

4

Это интересная особенность Git, и не такая плохая, как только вы осознаете, что происходит.

Git tracks фиксируется фиксацией хеша, и из истории hot-fix-2 уже присутствует. Гит также знает, что реверсия была применена, но на самом деле она не видит в ней поддержки исходной фиксации. Вместо этого, это просто еще одна фиксация, которая, случается, применяет тот же diff в обратном порядке, и у нее есть собственный хэш хэша.

Для того чтобы Git, чтобы увидеть изменения, у вас есть один из нескольких вариантов:

  1. Верните Revert. Как это ни странно, это работает. Это говорит о введении нового коммита, который содержит обратный diff. Это обязательство не присутствует на интеграции отрасли, и поэтому Git будет видеть, как изменения будут приведены в

  2. Вы можете вишневый выбрать оригинальный коммит, но вам нужен специальный вариант:.

    git cherry-pick --keep-redundant-commits COMMIT_HASH 
    

    где COMMIT_HASH представляет оригинальное исправление ошибки.

Есть и другие способы, чтобы помочь сделать это тоже, но они немного сложнее и связаны с использованием git rebase. Я думаю, что вышеупомянутые методы, вероятно, самые прямые.

+0

Я бы лично предпочел «git checkout bug-fix-2 && git rebase integration», но если есть какие-либо конфликты слияния ... (1), возможно, лучший вариант. – Pockets

+0

Это не сработает. Он отменит фиксацию, поскольку она уже существует в ветке интеграции. – jszakmeister

Смежные вопросы