2017-02-20 31 views
1

Я заинтересован в возвращении нажал совершить, но и удалить его с графика.
E.g. У меня есть:git revert удалить commit

    tag 
A <— B <— C <— D <— E <— F 
          HEAD 

Я хотел бы удалить F полностью, так мой график выглядит следующим образом:

    tag 
A <— B <— C <— D <— E 
        HEAD 

Как я могу это сделать?

+0

git reset --hard HEAD ~ 1 – 0andriy

+4

Просто для записи это действие - действие перезаписи истории. Поэтому, если вы уже нажали на фиксацию, а другие потянули ее, и теперь вы нажимаете - принудительно совершите фиксацию (что вам обязательно нужно делать), вы уничтожите удаленную историю. – ckruczek

ответ

1

Неправильно пытаться переписать историю.

Люди, которые клонировали/вытащили его, будут нелегко интегрировать ваши изменения и могут в конце концов отбросить изменения, которые вы хотели удалить.

Лучше отменить фиксацию, которая добавит «отрицательную» фиксацию к вашей истории.

git revert F 

И просто нажмите на нее

git push origin master 

В случае, если вы знаете, что вы делаете или не заботиться о взломе все, вы можете переписать историю:

git reset --hard HEAD^ 

Переводит индекс обратно на родительский фиксатор (E)

git push --force 

Отправляет новую ссылку на удаленный репозиторий независимо от того, является ли она быстрой перемоткой вперед или нет.