Вопросы по тегу: rebase

(3)

Git: ошибка «Невозможно сжать без предыдущей фиксации» при перебазировании

У меня в тексте задачи git rebase -i HEAD ~ 2есть следующее:pick 56bcce7 Closes #2774 pick e43ceba Lint.py: Replace deprecated link # Rebase 684f917..e43ceba onto 684f917 (2 command(s)) # ... Теперь, когда я пытаюсь раздавить первый (56bcce7) и выбрать второй, добавив «s» перед первым, я получаю следующую ошибку:Cannot 'squash' without a previous commit Может кто-нибудь объяснить мне, что это значит и как мне это сделать?I want to squash the first commit(56bcce7) and "select and reword" the second(e43ceba) commit
D

Dawny33

5 лет назад

Ответов: 7

Git: Каким будет правильный способ слияния (или перебазирования) кода на основе старого коммита / тега, который не отслеживался git?

Помещение:Допустим, ветвь репозитория master в git помечена как v4.0.В какой-то момент (много лет назад) кто-то схватил клон тега v2.0 и внес в него кучу изменений, но не сохранил свою собственную ветку и даже не сохранил свой код под git .Что еще хуже, самая большая проблема заключается в том, что он захватил фиксацию из ветки, которая на самом деле была дочерней для этого тега v2.0, и эта ветка теперь исчезла (должно быть, перебазирование, не уверен на 100%). Так что у меня действительно нет точного общего предка.Что работает:Различие между неотслеживаемым кодом и v2.0 может быть применено почти (с некоторыми Fuzz) до определенного момента в текущей истории коммитов (около нашей v2.7 tag), однако после v3.0 основные вещи изменились (каталоги перемещены, файлы переименованы и т. Д.), И эта разница, очевидно, перестает работать.Таким образом, ветвь может быть создана из чего угодно v2.0..v2.7 в текущем репозитории, чтобы попытаться сохранить старый код так или иначе отслеживаемым.Вопрос:Каким будет правильный способ правильно объединить этот неотслеживаемый код в ветку, которая ближе к master?Мне никогда не приходилось перебазировать что-либо, но если я правильно понимаю концепцию, я бы эффективно подтолкнул ветку masterк моей новой ветке, где Я применил diff (против v2.0 era), который затем я могу попытаться объединить обратно в ветку master.Мой поток / процесс просто никогда не завершается успешно, когда коммиты v2.8..v3.0 начинают появляться, конфликты становятся довольно неуправляемыми, это как если бы коммиты были захвачены после исходного клона (некоторые патчи терпят неудачу, потому что они кажутся уже примененными), и это все портит (или, возможно, как я уже упоминал, мой первоначальный выбор для общего предка просто неправильно).Если поиск правильного / ближайшего общего предка имеет первостепенное значение, существует ли git способ, чтобы сделать это? Все, о чем я могу думать, - это создать сценарий, который будет подсчитывать строки различий между старым кодом для каждого коммита в диапазоне и возвращать тот коммит, который дает наименьшее различие.TL; DRСуществуют ли надлежащие процедуры / методы / инструменты / альтернативы для слияния разветвленного, неотслеживаемого, старого кода в недавнюю ветку ~ ish в git?.
J

Javier

6 лет назад

Ответов: 1

Git отказывается объединять несвязанные истории при перебазировании

Во время git rebase origin / development из Git отображается следующее сообщение об ошибке:fatal: refusing to merge unrelated histories Error redoing merge 1234deadbeef1234deadbeef Моя версия Git - 2.9.0. В предыдущей версии он работал нормально.Как я могу продолжить эту перебазировку, разрешив несвязанные истории с флагом принудительного действия, введенным в новом выпуске?
S

Shubham Chaudhary

6 лет назад

Ответов: 25

2022 WebDevInsider