paint-brush
Как удалить коммиты с удаленного компьютера в Gitк@timmouskhelichvili
375,238 чтения
375,238 чтения

Как удалить коммиты с удаленного компьютера в Git

к Tim Mouskhelichvili
Tim Mouskhelichvili HackerNoon profile picture

Tim Mouskhelichvili

@timmouskhelichvili

I am a Developer from Montreal, Canada 🇨🇦. I specialize...

2 мин read2022/05/31
Read on Terminal Reader
Read this story in a terminal
Print this story
Read this story w/o Javascript
Read this story w/o Javascript

Слишком долго; Читать

Чтобы удалить коммиты удаленно, вы можете использовать команду git reset, если ваши коммиты последовательные сверху, или интерактивную перезагрузку в противном случае. После того, как вы удалите коммиты локально, отправьте эти изменения на удаленный компьютер с помощью команды git push с опцией Force.
featured image - Как удалить коммиты с удаленного компьютера в Git
Tim Mouskhelichvili HackerNoon profile picture
Tim Mouskhelichvili

Tim Mouskhelichvili

@timmouskhelichvili

I am a Developer from Montreal, Canada 🇨🇦. I specialize in React & TypeScript development.

0-item
1-item

STORY’S CREDIBILITY

Guide

Guide

Walkthroughs, tutorials, guides, and tips. This story will teach you how to do something new or how to do something better.

Code License

Code License

The code in this story is for educational purposes. The readers are solely responsible for whatever they build with it.

Манипулирование историей очень распространено среди разработчиков, которые регулярно работают с Git. Действительно, разработчикам часто приходится удалять коммиты из истории Git. К счастью, Git предоставляет множество команд, позволяющих сделать эту операцию возможной.


Давайте приступим 😎.

Шаг 0 — Подготовка

Прежде чем манипулировать историей Git, убедитесь, что ваш рабочий каталог не содержит никаких изменений, с помощью команды git status .

Шаг 1. Удалите коммиты локально

Чтобы удалить коммиты с удаленного сервера, сначала вам необходимо удалить их из локальной истории.

1.1 Для последовательных коммитов сверху

Если коммиты, которые вы хотите удалить, помещены в начало вашей истории коммитов, используйте команду git reset --hard с объектом HEAD и количеством коммитов, которые вы хотите удалить.


 git reset --hard HEAD~1

Эта команда удалит последний коммит .


 git reset --hard HEAD~3

Эта команда удалит последние три коммита .


Вы также можете удалить определенный коммит, используя хеш коммита, например:

 git reset --hard <hash>

1.2 Для непоследовательных коммитов

image

Однако если вы хотите удалить непоследовательные фиксации, вам нужно будет использовать интерактивное перебазирование.


  • [ ] Найдите хеш последнего коммита, содержащий все коммиты, которые вы хотите удалить, с помощью команды git reflog .
  • [ ] Запустите интерактивную перезагрузку с помощью git rebase -i <hash> .
  • [ ] На экране редактирования найдите строки фиксации, которые хотите удалить, и удалите их.
  • [ ] Сохранить и выйти (возможно, вам придется разрешить конфликты)
  • [] Завершите интерактивную перезагрузку с помощью git rebase --continue или начните заново, прервав перезагрузку .

Шаг 2. Удалите коммиты с удаленного компьютера.

Чтобы удалить коммиты с удаленного компьютера, вам нужно будет отправить локальные изменения на удаленный компьютер с помощью команды git push .


 git push origin HEAD --force


Поскольку ваша локальная история отличается от удаленной истории, вам необходимо использовать опцию force .

Последние мысли

Как видите, Git позволяет легко удалять коммиты с удаленного сервера.


Однако вам нужно быть осторожным при использовании команды git push с опцией force , потому что вы можете потерять прогресс, если не будете осторожны.


image

Спасибо за чтение!

L O A D I N G
. . . comments & more!

About Author

Tim Mouskhelichvili HackerNoon profile picture
Tim Mouskhelichvili@timmouskhelichvili
I am a Developer from Montreal, Canada 🇨🇦. I specialize in React & TypeScript development.

БИРКИ

ЭТА СТАТЬЯ БЫЛА ПРЕДСТАВЛЕНА В...

Permanent on Arweave
Read on Terminal Reader
Read this story in a terminal
 Terminal
Read this story w/o Javascript
Read this story w/o Javascript
 Lite
X REMOVE AD