2015-06-19 3 views
-1

Я проверил код в своем локальном master git repo, а затем подтолкнул его к исходному. Существует только одна такая ошибочная проверка. Каков наилучший способ вернуть последнюю фиксацию локально и удаленно?Возврат кода к предыдущему Commit in Master

Я бы предпочел уничтожить историю.

+1

Это зависит от того, хотите ли вы уничтожить историю. – SLaks

+0

Да, я предпочитаю уничтожить историю –

+0

Возможный дубликат [Как отменить последний коммит?] (Http://stackoverflow.com/questions/927358/how-to-undo-the-last-commit) –

ответ

3

Если вы уверены никто не делал выборку/вытащить из репо, так как вы сделали фиксацию, сделайте следующее:

git reset --hard HEAD~1 
git push -f 

Если кто-то уже неправдоподобным/тянули, однако, не так много могут обойтись без их сотрудничества. В этом случае ваш лучший выбор делает git revert HEAD, что сделает дополнительную фиксацию, которая отменяет вашу последнюю фиксацию.

2

Вы можете переписать историю, чтобы удалить эту фиксацию, используя git rebase -i <any earlier commit>.
Если это последняя фиксация, вы также можете запустить git reset --hard HEAD^.

Затем вы можете запустить git push -f, чтобы переписать историю удаленных объектов. Это сломает любого, кто потянул за это.

+0

Вы уверены, что HEAD^даст удалить последнюю фиксацию? –

+0

Разве это не git push origin тормоз -f? –

+0

@SachinKainth: 'git reset' сбросит локальную ветвь, чтобы указать на эту фиксацию. 'HEAD ^' означает непосредственный родитель HEAD. – SLaks

Смежные вопросы