Например, в следующей основной ветке мне нужно удалить только фиксацию af5c7bf16e6f04321f966b4231371b21475bc4da, которая является второй из-за предыдущей перебазировки:
commit 60b413512e616997c8b929012cf9ca56bf5c9113
Author: Luca G. Soave <luca.soave@gmail.com>
Date: Tue Apr 12 23:50:15 2011 +0200
add generic config/initializers/omniauth.example.rb
commit af5c7bf16e6f04321f966b4231371b21475bc4da
Author: Luca G. Soave <luca.soave@gmail.com>
Date: Fri Apr 22 00:15:50 2011 +0200
show github user info if logged
commit e6523efada4d75084e81971c4dc2aec621d45530
Author: Luca G. Soave <luca.soave@gmail.com>
Date: Fri Apr 22 17:20:48 2011 +0200
add multiple .container at blueprint layout
commit 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22
Author: Luca G. Soave <luca.soave@gmail.com>
Date: Thu Apr 21 19:55:57 2011 +0200
add %h1 Fantastic Logo + .right for 'Sign in with Github'
Мне нужно поддерживать
- Первый коммит 60b413512e616997c8b929012cf9ca56bf5c9113,
- Третий коммит e6523efada4d75084e81971c4dc2aec621d45530 и
- Последний коммит 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22
"выбросить" только Второй коммит af5c7bf16e6f04321f966b4231371b21475bc4da
Как я могу это сделать? Заранее спасибо Лука
источник
Если перебазировать вариант, вы можете перебазировать и просто отбросить его:
Если перебазирование невозможно, вы можете просто отменить его:
источник
git rebase
ее сбросить (запустивrebase
в интерактивном режиме и удалив запись).Несмотря на всю заслугу первоначальных ответов, полученных здесь, я не нашел их, чтобы дать удовлетворительный ответ на вопрос. Если вы оказались в ситуации, когда вам нужно удалить коммит или набор коммитов из середины истории, я предлагаю следующее:
Вот информация о Cherry Picking: что означает выбор вишневого коммита с помощью git?
Вот несколько примеров того, как это сделать с Tortoise Git (как я только что сделал). Определенно проще использовать утилиту gui для такого рода операций! Сбор вишни с помощью TortoiseGit
источник