Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » [решено] Гит

Ответить
Настройки темы
[решено] Гит

Аватара для Charg

Ветеран


Сообщения: 2798
Благодарности: 469


Конфигурация

Профиль | Отправить PM | Цитировать


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

Отправлено: 18:03, 18-01-2018

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


самый универсально-безопасный метод - git revert
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:54, 18-01-2018 | #2



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Charg

Ветеран


Сообщения: 2798
Благодарности: 469

Профиль | Отправить 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
Благодарности: 824

Профиль | Отправить PM | Цитировать


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

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

Отправлено: 22:30, 19-01-2018 | #4



Компьютерный форум OSzone.net » Компьютеры + Интернет » Хочу все знать » [решено] Гит

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено




 
Переход