4-й шаг требует от вас использования источника / электронной почты, он не работает только с локальной электронной почтой.

я есть две ветви,email а такжеstaging. staging это последний, и мне больше не нужны старые изменения вemail филиал, но я не хочу их удалять.

Так что я просто хочу сбросить все содержимоеstaging вemail так что они оба указывают на один и тот же коммит. Это возможно?

 Tomas Kubes05 янв. 2017 г., 12:51

Ответы на вопрос(3)

но они не помогли полностью.

Вот что сработало для меня:
$ git checkout email
$ git tag old-email-branch # This is optional
$ git reset --hard staging
$
$ # Using a custom commit message for the merge below
$ git merge -m 'Merge -s our where _ours_ is the branch staging' -s ours origin/email
$ git push origin email

Без четвертого шага слияния с нашей стратегией продвижение считается обновлением без ускоренной перемотки вперед и будет отклонено (GitHub).

 cdunn200122 июн. 2012 г., 00:15
Там написано «Объединить ветку удаленного отслеживания« происхождение / электронная почта »в электронную почту». Это не касается постановки. Ничего страшного, хотя. Просто измените коммит или используйтеmerge -m 'This is not my beautiful house.' -s ours origin/email.
 Shyam Habarakada11 июн. 2012 г., 07:37
cdunn2001, мне любопытно. Каково было сообщение слияния-фиксации, которое вы ожидали, и как это запуталось?
 Travis Reeder06 июн. 2013 г., 18:48
4-й шаг требует от вас использования источника / электронной почты, он не работает только с локальной электронной почтой.
 cdunn200105 июн. 2012 г., 06:57
Это делает сообщение Merge-commit неправильным, но да, оно прекрасно работает.
 kommradHomer01 нояб. 2012 г., 11:08
@ShyamHabarakada, я делаю, как вы говорите, и у меня возникает проблема с обновлением без ускоренной перемотки вперед. потому что ничего не происходит, когда я делаю 4-й шаг.
Решение Вопроса

$ git checkout staging
$ git merge -s ours email # Merge branches, but use our branch head
 MrGlass28 апр. 2014 г., 18:59
@ Макс У меня было такое же замешательство, и это доставляло мне много хлопот. Вам нужно выполнить эту команду из более новой ветви (промежуточной), а затем выполнить обычное слияние / PR со своей старой веткой (электронная почта).
 Max23 апр. 2014 г., 03:58
Я пробовал это, и мне кажется это задом наперед? Разве это не сбрасывает содержимое электронной почты в постановку, а не наоборот?
 Rolf05 июн. 2015 г., 12:46
git rebase -s theirs <oldbranc> <newbranch> работает также (независимо от того, какая вы ветвь). Обратите внимание, что в rebase «их» - это фактически новый филиал, потому что «наш» - это глава, к которому мы в настоящее время применяем коммиты.
 knittl05 июн. 2015 г., 13:00
@Rolf: но rebase избавится от информации о слиянии и сгладит историю. Не обязательно то, что вы после. Также не очень хорошая идея, если вы работаете с уже опубликованной историей.
 Rosdi Kasim13 нояб. 2014 г., 04:32
Почему; в конце каждой команды? Я обошлась без; и, похоже, работает. Кроме того, этот ответ неполон, третий шаг состоит в извлечении старой ветки (электронная почта) и затем объединении с подготовкой снова.

email' и 'staging' были одинаковыми, вы можете пометить ветку 'email', а затем сбросить ветку 'email' на 'staging':

$ git checkout email
$ git tag old-email-branch
$ git reset --hard staging

Вы также можете перебазировать ветку 'staging' на ветку 'email'. Но результат будет содержать модификацию двух веток.

 cicerocamargo10 февр. 2017 г., 12:21
Я считаю, что это правильный ответ.email голова филиала должна просто указывать на ту же главуstaging и у них обоих будут одинаковые коммиты, одна и та же история.
 Geoffrey De Smet20 сент. 2012 г., 16:29
git reset нарушает репо других людей, которые клонировали ваше репо
 knittl07 янв. 2011 г., 12:19
ты наверное имеешь ввидуgit checkout, git check не существует, насколько мне известно
 Daniel Allen Langdon15 февр. 2014 г., 21:06
-1: это не сработало для меня
 Sylvain Defresne07 янв. 2011 г., 12:34
Вы правы, я настолько привык к завершению команды git, что всегда пишу "git check <TAB>", чтобы написать "git checkout"! Исправленный.

Ваш ответ на вопрос