2012-04-12 2 views
8

У меня есть некоторые коммиты, которые мне не нужны в моем проекте, но есть фиксация, основанная на них, в которой я действительно хочу. Это мой GitHub «Сеть» график репозитория (ASCII, так как я до сих пор не могу добавлять изображения):Как пропустить коммит в git?

[]--[]--[_] 
|  | 
|  ------->| 
---------->[·]--[·]--[*] 

(-> означает слияние)

Я хочу, чтобы удалить изменения, внесенные в два [·] совершают и основывают [*] один на [_] выше. Я попытался слить и перезагрузить, но они применяют изменения нежелательных коммитов. Возможно ли это?

Извините, если я не понимаю, английский язык не мой родной язык. Спасибо заранее.

ответ

10

Я могу дать вам два варианта:

  • Interactive Rebase (git rebase -i) представляет вам список коммитов, редактируя этот список будет изменить результат операции; позволяет переупорядочить, удалить или пометить эти фиксации для разных операций. В вашем случае вы можете переделать ветку [*] в [_] и удалить ненужные строки.

  • Cherrypick позволяет применять изменения в одной фиксации в другой отрасли. В вашем случае вы можете просто сделать cherrypick [*] в ветке [_].

2

Вы можете проверить ваш _ и cherry pick*. Если вы хотите, чтобы это было на отдельной ветке, вы можете разветвиться от _ до этого.

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