Первое: Вы должны сделать это только для отрасли, что вы не обмена; если ветвь проверяется другими, этот процесс не синхронизируется с удаленным локальным копированием, и они не смогут просто нажать на фиксации в филиале. Это можно отсортировать, но это потенциально беспорядок.
Учитывая, что, если я вас правильно понимаю, вы в этой ситуации:
xxxxxxx Bad commit #3
yyyyyyy Bad commit #2
zzzzzzz Bad commit #3
wwwwwww This and everything before it are fine
Вы хотите отказаться от совершающих после wwwwwwww
и зафиксировать удаленный филиал, чтобы соответствовать.
Сначала создайте резервную копию ветви, на которой вы делаете операцию, чтобы восстановить ее, если вы испортились, а затем вернитесь к ветке, которую хотите удалить.
git checkout -b broken-estimation
git checkout estimation
git log
Run, чтобы найти SHA1 из первой фиксации вы хотите сохранить. Как только вы что SHA1, сбросить ветку, что:
git reset --hard kkkkkkk
где kkkkkk
является SHA1 из первого совершить вы хотите сохранить на ветке.
Запустите git log
еще раз, чтобы убедиться, что у вас есть желаемый SHA1 в качестве кончика этой ветки; это должно быть первое коммитирование, которое вы видите на выходе git log
. Если вы не убрали достаточно коммитов, повторите команду git reset --hard
с правильным SHA1, чтобы удалить больше коммитов.
Если вы удалили слишком много фиксаций, восстановить estimation
ветвь из резервной копии вы взяли:
git checkout -B estimation broken-estimation
и повторить git log
найти SHA1 фиксации, который вы хотите на кончике, а затем git reset --hard kkkkkkk
(с kkkkkkk
, являющимся SHA1, который вы действительно хотели), чтобы удалить нежелательные коммиты после этого фиксации.
После того, как вы получили ветвь в желаемое состояние, вы можете нажать на неподвижную ветвь на пульте дистанционного управления, заменив старую версию:
git push -f the_proper_remote estimation
После того, как вы уверены, что ваш ремонт правильно, вы можно удалить резервную копию ветви:
git branch -d broken-estimation
вы можете найти этот ответ: http://stackoverflow.com/a/1470452/1475228 –