Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Хочу все знать (http://forum.oszone.net/forumdisplay.php?f=23)
-   -   [решено] Гит (http://forum.oszone.net/showthread.php?t=332627)

Charg 18-01-2018 18:03 2792330

Гит
 
Создал тестовый репозиторий и пытаюсь разобраться с гитом. Для начала установил клиент с интерфейсом (smart git).
Есть допустим папка (содержимое которой и есть все файлики в репозитории). Меняю файлик, делаю коммит - изменение сохраняется в логе. По кнопке пуш оно отправляется из локальной ветки "мастер" в ту что на сервере.
Делаю пару коммитов, пушу их на сервер. И допустим в итоге до меня внезапно доходит что я запушил какую-то лютую дичь и мне она на сервере не нужна. Как вернутся назад?
Исходя из того что мне удалось нагуглить - подразумевается что пушить коммиты в origin/master нужно только тогда когда на 146% уверен что это самый распоследний окончательный вариант. Но что делать если таки налажал? Как вернуть origin/master в состояние которое там было N коммитов назад?

Busla 18-01-2018 18:54 2792345

самый универсально-безопасный метод - git revert

Charg 19-01-2018 12:22 2792474

Busla, ну и как ним пользоваться? Почитал документацию тут https://git-scm.com/docs/git-revert но там много местных терминов которые я не понимаю. Например что такое working tree, а соответственно и не знаю когда оно clean а когда нет. HEAD commit - ну тут догадываюсь что это самый последний коммит в origin/master но не уверен.

У меня например в origin/master сейчас так:
коммит1 - последний коммент (он же HEAD, как я понимаю) - вносит минимальные изменения, откатывать или нет - всё равно
коммит2 - предпоследний коммит - проблемный - его то мне и нужно откатить
коммит3 - мерж временной ветки какой-то-там с origin/master - вот на состояние сразу после этого коммита мне и нужно откатить ветку origin/master

Из примеров по документации, как я понимаю, мне нужна команда git revert HEAD~1. Так?

upd - попробовал, сработало как нужно
А вообще какой рассово-верный способ выхода из таких ситуаций? Именно реверт?

Busla 19-01-2018 22:30 2792615

Charg, git используют в довольно разных целях, поэтому единственно-верного способа не существует

В процессе обычной деятельности лучше перекрывать ошибку последующим коммитом с исправлениями.
А перекраивать историю только если "дичь" относится не к коду.


Время: 22:59.

Время: 22:59.
© OSzone.net 2001-