Примечание: Я знаю git push -f
Вопросы распространены, но я действительно не мог легко найти ответы на этот конкретный вопрос в любом месте. Я хочу получить исчерпывающий ответ, а не только то, что несколько решает мою проблему. В конце вопроса я предлагаю решение самостоятельно.git push -f: Как убедиться, что другие люди догоняют?
Я ввел некоторые изменения в ветку, я не должен (на работе). У меня уже есть git revert
'изменения, но один из координаторов команды хотел, чтобы я действительно git reset <old commit> && git push -f
, чтобы история не была загромождена ревертом. Немногие люди используют эту ветку, поэтому мы думали, что это стоит того риска.
Это работало, но я боюсь, что люди, которые уже вытащили мои коммиты, могут случайно ускорить переадресацию удаленной ветви, так как история еще не расходилась (я только что переустановил старую фиксацию, но didn ' t сделать любую другую фиксацию поверх этого).
Я заметил, что если я git reset <old HEAD commit> && git status
, Git говорит, что пара совершает впереди origin/<branch>
, поэтому я уверен, что если я git push
снова, Git будет только быстро пересылать.
git pull
говорит, что репо является актуальным и не отступает (что, я думаю, не обязательно). Но тогда, что я должен сделать, чтобы убедиться, что все возвращаются в правильное HEAD на origin/<branch>
и работают оттуда? Нужно ли спрашивать у всех git reset origin/<branch>
, прежде чем возобновлять работу над этой ветвью? Я действительно хотел что-то более легкое и менее подверженное ошибкам (они могут забыть это сделать).
Я знаю, что не должен быть git, перезагружающий ветку на общем репо, но вы знаете, как это происходит ... Иногда вы просто чувствуете себя авантюристами, или, может быть, ваш начальник попросил вас сделать это, и вы знаете, что это неправильно, но в любом случае это может быть образовательный опыт: P
Правильно, но что именно я должен сказать им делать, если они попали в неправильную ГОЛОВУ или совершили историю? Должен ли я просто сказать им «git reset origin/'? Убедившись, что их собственные изменения сохранены в патче, прежде чем, конечно, чтобы они могли повторно применить их к правильной истории фиксации. –
Я думаю, что это почти окончательный ответ, можете ли вы указать, как быть уверенным, что только законные коммиты переустанавливаются?Как указать диапазон коммитов для rebase? –
О, '-i' делает его интерактивным, поэтому я могу выбрать, что нужно переустановить. Спасибо, я добавлю это к вашему ответу. –