В моем репо у меня была ветвь мастера и ветка исправления. Я сделал мой bugfix и объединил его в master. Затем, в припадке безумия над глупой ошибкой, я сделал немыслимое. Я добавил 3 символа для смены после слияния с git commit --amend
. Я переписал историю. Тогда, к моему ужасу, это затронуло только мастера, а не исправление, так что если я запустил (на master) git branch --no-merged
, я вижу, что ошибка не объединена. Итак, я проверяю bugfix и делаю те же изменения, что git diff bugfix master
ничего не возвращает, а затем от master я снова проверяю git branch --no-merged
, и он по-прежнему говорит, что ошибка не объединена. Итак, теперь у меня есть две одинаковые ветки, которые я хотел бы объединить, а это не так, и я не хочу использовать другую фиксацию. Как я могу объединить их, так что git видит их как объединенные и git branch --no-merged
не возвращает bugfix?«Объединить» две идентичные ветки
1
A
ответ
1
Иногда, когда вы теряетесь на тропе, наиболее разумной задачей является повторение шагов к предыдущему пункту, когда вы не были потеряны. В вашем случае я бы отменил исправление слияния с изменением в master
, а также nuke «зафиксировать» фиксацию в bugfix
. Затем повторите слияние без каких-либо дополнительных изменений.
Отменить плохой фиксации в багфикс:
git checkout bugfix # switch to bugfix
git reset --hard HEAD~1 # nuke the fix commit
Undo сливаться совершить в мастер:
git checkout master # switch to master
git reset --hard HEAD~1 # nuke the amended merge commit
Теперь вы можете повторить слияние:
git merge bugfix
Примечание: Этот ответ предполагает что вы еще ничего не сделали на пульте дистанционного управления. Если у вас есть, то вы захотите использовать git revert
, чтобы отменить плохие коммиты, а не переписывать историю.
Смежные вопросы
- 1. Как объединить две идентичные функции jQuery?
- 2. Как объединить две ветки git полностью удаленно?
- 3. Две идентичные подпоследовательности
- 4. Две таблицы почти идентичные
- 5. Как объединить две ветки с разными иерархиями каталогов в git?
- 6. Git: Как правильно объединить две функциональные и совершенно разные ветки?
- 7. Объединить две ветки Git, но исключить определенные файлы
- 8. Git: Bettter путь, чем вишневый выбор, чтобы объединить две ветки?
- 9. Объединить две ветки svn в новую третью ветку?
- 10. Объединить разработки и мастер-ветки
- 11. Gitlab объединить две ветви
- 12. как объединить ветки после Git revert
- 13. Как объединить ветки в VSS?
- 14. Объединить конфликт при изменении ветки
- 15. Невозможно объединить ветки Xcode Sourcecontrol
- 16. Как слить две удаленные ветки Git?
- 17. Найдите две идентичные ячейки в Google Таблицах
- 18. Две почти идентичные формы функционируют по-разному
- 19. Одновременно обновлять две идентичные схемы базы данных
- 20. Невозможно сравнить две идентичные строки в PHP?
- 21. Имеет ли две идентичные массивы двойную память?
- 22. различают две почти идентичные ссылки в regex
- 23. Две идентичные петли, но вторая бесконечно продолжается
- 24. Objective-C: Две идентичные строки не совпадают?
- 25. Python 3 - Две идентичные строки не соответствуют ==
- 26. Две идентичные функции цикла, вторая не работает
- 27. Строковый генератор печатает две идентичные координаты
- 28. Две идентичные программы, только одна компиляция (java7)
- 29. Вернуть две идентичные строки в MySQL
- 30. Две идентичные формулы, производящие разные результаты
Отменить фиксацию слияния, снова слиться и перейти оттуда. Я не думаю, что путь, на котором вы находитесь, принесет какие-либо плоды (по крайней мере, вы не хотите есть). –
Даже после того, как вы внесете исправление, у фиксации все еще есть два родителя и является фиксацией слияния, поэтому не имеет смысла, что после этого ошибка появляется в -no-merged. – DavidN
@DavidN Я не знаю, почему это случилось, я просто перечисляю то, что случилось со мной. Я попытаюсь воспроизвести его и сообщить, могу ли я это сделать. – thesecretmaster