У меня есть ветка развития, называемая функцией/многочленностью, которая была отделена от мастера. После того, как моя работа была завершена, я объединил ветвь функции в промежуточную ветку, называемую «промежуточная стадия-объединение», которая также была отделена от мастера. Были конфликты слияния, которые я разрешил, и затем я объединил промежуточную ветку в мастер. Тем не менее, все коммиты, которые я сделал в «feature/multientity», не были объединены. Только одно коммит, то место, где я зафиксировал конфликты слияния, было объединено. Итак, теперь, несмотря на то, что код обновлен, любые будущие слияния «feature/multientity» с мастером будут иметь конфликты слияния, потому что ни одна из транзакций не была перенесена. Кто-нибудь сталкивался с этим вопросом раньше? Я использую SourceTree в качестве инструмента для управления версиями.Все коммиты потеряны при слиянии ветви развития назад к мастеру
ответ
Не имеет смысла. Когда вы смотрите на объединение слиянием в процесс объединения-многократного слияния, видите ли вы свои изменения в функции/многопользовательской? Если это так, они там. Если нет, вы испортились во время разрешения конфликта слияния и не включили их или не завершили слияние с git add/rm, а затем git commit? То же самое для фиксации слияния в мастер.
Изменения есть, но все они сконденсированы в одно слияние. История фиксации каждого отдельного коммита не существует. Мой процесс был следующим: 1) Оформить заказ «промежуточное слияние-объединение» локально. 2) Потяните «функцию/многомерность» в локальную ветвь и разрешите все конфликты слияния. 3) Зафиксируйте разрешение. 4) Переместите локальную ветвь в удаленную ветку и создайте запрос на растяжение для слияния с мастером. –
А, ладно, вы искали сообщения о фиксации в транзакции слияния? Потому что это не делает по умолчанию. Добавьте флаг -log, чтобы получить это, см. Https://git-scm.com/docs/git-merge. – DavidN
№ После того, как я слился в промежуточную ветку, я сделал «git log», и единственное новое коммитирование, которое я видел, было слияние. Все фиксации из ветки «feature/multientity» не были частью истории филиалов. –
Я столкнулся с вашей описанной проблемой, и я использую SourceTree в качестве инструмента визуализации. Я решил проблему, сбросив состояние до слияния и правильно слив. Я, по-видимому, попытался объединить обе ветви, чтобы освоить, где я должен был объединить ветвь функции в промежуточную ветку. Это может произойти, если имена ветвей нетривиальны.
Вы можете попробовать следующие шаги, чтобы объединить свои художественные изменения ветви к промежуточной ветви до слияния всех изменений в мастер:
- Checkout функции/multientity
Сброс функции/multientity в состояние перед слиянием, используйте, например,
git log --stat
, чтобы найти хеш фиксации перед слиянием. Используйтеgit reset --hard commit_hash_here
Повторите для постановки ветви, сброс промежуточной-multientity-сливаться заявить до слияния совершить
Теперь
git checkout staging-multientity-merge
первым и использовать командуgit merge feature/multientity
здесь только после проверки ветви промежуточной. Это приведет к изменениям с функции/многопользовательской функции для промежуточной ветви.Используйте
git status
для контроля состояния слияния и устранения любых конфликтов слияния. Commit usinggit commit -m "Your merge conflict resolution message here."
Теперь ваша промежуточная ветка готова к объединению для освоения.- Далее, используйте
git checkout master
, это то, что я забыл, и завершить работу, используяgit merge staging-multientity-merge
. Используйте Создайте новый коммит, даже если возможна перемотка вперед. вариант в представлении фиксации SourceTree (в левом нижнем углу), это позволит нескольким ветвям не указывать в одном фиксации в представлении фиксации SourceTree. Использование функции fast-forward здесь действительно создает визуально более приятный внешний вид в представлении истории фиксации SourceTree, на мой взгляд.
Используя этот подход, сброс ветвей может заставить вас принудительно вносить изменения в удаленный репозиторий, но это не обязательно, если вы еще не нажали неудачное слияние на удаленный.
В то время как у меня была проблема с неудачным слиянием, мне было трудно интерпретировать визуальные эффекты инструмента SourceTree для каждой ветви.Цвета произвольны и только там, чтобы помочь вам визуализировать отношение между родителями и дочерними элементами. См. Atlassian Community answer about what SourceTree tool branch colour visuals represent, чтобы узнать больше о SourceTree.
Кроме того, проблема автора может возникнуть, если другой коллега нажал операцию git, названную revert в вашей целевой ветви, и вы слились раньше в целевую ветку. Возврат git merge приведет к тому, что ваша история будет отменена в этом случае. Вы можете исправить это, вернув реверс. Вот отличное письмо, в котором описывается [проблема с возвратом слияния] (https://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.html). Также вы можете увидеть, как выполнить повторное слияние [здесь] (https://stackoverflow.com/questions/1078146/re-doing-a-reverted-merge-in-git) – Huntha
- 1. Объединить коммиты, принадлежащие поддиректорию ветки к мастеру
- 2. git - пропуская определенные коммиты при слиянии
- 3. Найти коммиты в восстановленном слиянии
- 4. Ветвь Переписывание главной ветви при слиянии git
- 5. Gitflow: Squash фиксируется при слиянии с разработчиком
- 6. файла отображается как удаляется при слиянии ветви к магистральному
- 7. Перемещение возвращается к мастеру
- 8. Git ветвление и переключение назад к мастеру впереди?
- 9. при слиянии ветки git, как избежать коммитов в ветке?
- 10. Merge особенность ветви к мастеру в одном шаге
- 11. Рефакторинг и параллельные ветви развития
- 12. Замена ветви развития с мастером
- 13. Как защитить каталог от получения совершенных изменений при слиянии?
- 14. Rebase/copy все отсутствующие коммиты из одной ветви сверху текущей ветви
- 15. как проверить все коммиты одной ветви есть в другой ветке
- 16. коммиты, сделанные после Прицепные запроса создается не учитываются при слиянии
- 17. Git - вытягивание изменений от клонирования назад к мастеру
- 18. Git перебазироваться 2 коммиты разделяют 2 ветви
- 19. как удалить старые коммиты после фильтрации-ветви?
- 20. СВН: Файл не найден при слиянии удалены ветви
- 21. Git маркирует все новые коммиты как происходящие «3 месяца назад»
- 22. Как предотвратить дублирование транзакций в git-слиянии?
- 23. Git объединить только конечный результат ветви разработки
- 24. Как переустановить очередь очереди при слиянии ветви в mercurial с помощью mq?
- 25. Git удалил некоторые файлы при слиянии
- 26. Git: Определить все коммиты, сделанные объединенной ветвью?
- 27. Все коммиты, сделанные мною во всех ветвях
- 28. Clearcase ошибка при слиянии код
- 29. Игнорировать файлы/папки при слиянии
- 30. Jenkins Cant Подключитесь к мастеру
Используете ли вы так называемую технику «сквош-слияние»? Если это так, обратите внимание, что слияние сквоша не является слиянием вообще, это всего лишь одно обычное совершение. – torek
Я не сквош слился. Это было простое слияние ветки функций в промежуточную ветвь. –