У меня есть две ветви, email
и staging
. staging
это последняя версия, и мне больше не нужны старые изменения в email
ветке, но я не хочу их удалять.
Поэтому я просто хочу поместить все содержимое staging
в, email
чтобы они оба указывали на один и тот же коммит. Это возможно?
Ответы:
Вы можете использовать «нашу» стратегию слияния:
источник
;
в конце каждой команды? Я сделал без;
и, кажется, работает. Кроме того, этот ответ неполон, третий шаг состоит в извлечении старой ветки (электронная почта) и затем объединении с подготовкой снова.git rebase -s theirs <oldbranc> <newbranch>
работает также (независимо от того, какая вы ветвь). Обратите внимание, что в rebase «их» - это фактически новый филиал, потому что «наш» - это глава, к которому мы в настоящее время применяем коммиты.Если вы просто хотите, чтобы две ветви 'email' и 'staging' были одинаковыми, вы можете пометить ветку 'email', а затем сбросить ветку 'email' на 'staging':
Вы также можете перебазировать ветку 'staging' на ветку 'email'. Но результат будет содержать модификацию двух веток.
источник
git checkout
,git check
не существует, насколько мне известноemail
руководитель ветви должен просто указывать на однуstaging
и ту же главу, и у них обоих будут одинаковые коммиты, одна и та же история.Я видел несколько ответов, и это единственная процедура, которая позволяет мне исправить это без каких-либо конфликтов.
Если вы хотите все изменения от branch_new в branch_old, то:
применив эти четыре команды, вы можете без проблем нажать на branch_old
источник
Другие ответы дали мне правильные подсказки, но они не помогли полностью.
Вот что сработало для меня:
Без четвертого шага слияния с нашей стратегией продвижение считается обновлением без ускоренной перемотки вперед и будет отклонено (GitHub).
источник
merge -m 'This is not my beautiful house.' -s ours origin/email
.Если вы похожи на меня и не хотите иметь дело со слиянием, вы можете выполнить описанные выше шаги, за исключением использования силы вместо слияния, поскольку это создаст отвлекающий след журнальной бумаги:
Примечание: это только в том случае, если вы ДЕЙСТВИТЕЛЬНО никогда больше не захотите видеть материал по электронной почте.
источник
Я хотел объединить две ветви, чтобы все содержимое
old_branch
было обновлено содержимым изnew_branch
Для меня это работает как шарм:
источник
Как насчет:
источник
Другие ответы выглядели неполными.
Я попробовал ниже в полном объеме, и он работал нормально.
НОТА:
1. Сделайте копию своего хранилища, прежде чем пытаться сделать это ниже, чтобы быть в безопасности.
Детали:
1. Вся разработка происходит в ветке dev.
2. Ветвь q - это та же самая копия dev.
3. Время от времени код dev должен быть перемещен / переписан в ветку qa
поэтому нам нужно переписать ветку qa из ветки dev
Часть 1:
С помощью приведенных ниже команд старый qa был обновлен до более нового dev:
Автоматический комментарий для последнего нажатия дает ниже:
Этот комментарий выглядит обратным, потому что приведенная выше последовательность также выглядит обратной
Часть 2:
Ниже приведены неожиданные новые локальные коммиты в dev, ненужные,
поэтому нам нужно выбросить и сделать dev нетронутым.
Часть 3:
Убедитесь, что все как положено:
Вот и все.
1. старый qa теперь перезаписывается новым кодом ветки dev
2. local чист (удаленный источник / dev не тронут)
источник
Самый простой способ сделать это:
Теперь ветка электронной почты и сценарии совпадают.
источник
email
ветке. Это все равно что удалитьemail
ветку и создать ее заново во главеstaging
ветки.источник
Этот не изменяет оригинальную более новую ветвь, и дает вам возможность внести дальнейшие изменения перед окончательной фиксацией.
источник