|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » [решено] Гит |
|
[решено] Гит
|
Ветеран Сообщения: 2798 |
Профиль | Отправить PM | Цитировать Создал тестовый репозиторий и пытаюсь разобраться с гитом. Для начала установил клиент с интерфейсом (smart git).
Есть допустим папка (содержимое которой и есть все файлики в репозитории). Меняю файлик, делаю коммит - изменение сохраняется в логе. По кнопке пуш оно отправляется из локальной ветки "мастер" в ту что на сервере. Делаю пару коммитов, пушу их на сервер. И допустим в итоге до меня внезапно доходит что я запушил какую-то лютую дичь и мне она на сервере не нужна. Как вернутся назад? Исходя из того что мне удалось нагуглить - подразумевается что пушить коммиты в origin/master нужно только тогда когда на 146% уверен что это самый распоследний окончательный вариант. Но что делать если таки налажал? Как вернуть origin/master в состояние которое там было N коммитов назад? |
|
Отправлено: 18:03, 18-01-2018 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать самый универсально-безопасный метод - git revert
|
Отправлено: 18:54, 18-01-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2798
|
Профиль | Отправить PM | Цитировать 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 - попробовал, сработало как нужно А вообще какой рассово-верный способ выхода из таких ситуаций? Именно реверт? |
Последний раз редактировалось Charg, 19-01-2018 в 13:06. Отправлено: 12:22, 19-01-2018 | #3 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Charg, git используют в довольно разных целях, поэтому единственно-верного способа не существует
В процессе обычной деятельности лучше перекрывать ошибку последующим коммитом с исправлениями. А перекраивать историю только если "дичь" относится не к коду. |
Отправлено: 22:30, 19-01-2018 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
|