Я искал много сообщений на git reset --hard <commit>
, и я перезапускаю преждевременно объединенную ветвь к состоянию, чтобы зафиксировать бит в истории. Текущее состояние «мастера» выглядит неплохо, но git status
говорит, что моя локальная ветка отстает от начальника/хозяина на 24 фиксации и может быть перенаправлена вперед. Я не могу нажать без повторного слияния оригинала/мастера. Есть ли способ пропустить эти коммиты и сказать: «Я не хочу их»?Как избежать сообщения «может быть быстро переадресовано» после сброса git --hard <sha1>?
Это центральная установка репо, и один из моих сотрудников объединил свою длинную ветвь dev с мастером по аварии и не мог понять, как отступить, поэтому я пытался сделать это за него.
Recap команд (из памяти, это было два дня испытание)
Обнаруженной ошибку, когда я принес и проверил мастер, сообщил сослуживец. Он не мог заставить его сбросить так ... я
git merge master origin/master
git reset --hard <commit_I_wanted>
git push # is rejected
git status # gives me the "behind by x commits, can be fast-forwarded" message
Спасибо, Hans
Хорошо, я подумаю, что через. Я не использовал revert, потому что я читал, что было бы сложно (невозможно?) Позже слить эту ветку развития. Что я читал (в нескольких местах), сказал, что revert удаляет изменения, но, похоже, что изменения в ветвь была объединена, поэтому она не будет снова сливать их. – Hans
Что делать, если они внесли изменения и нажали (для целей резервного копирования) другие ветки, которые я не коснулся? Если я сделаю так, чтобы я взял и объединил каждую из этих ветвей, тогда я буду в порядке, не так ли? – Hans
Сделайте git push -f origin <отрасль для перезаписи>, а затем вы можете безопасно извлечь и объединить эти другие ветви в свою локальную ветвь <<, чтобы перезаписать> ", а затем снова нажать. – flumpb