git (откат изменений)

IDE, VCS и прочее

Модератор: Модераторы разделов

frp
Сообщения: 1445
ОС: Debian Squeeze

git

Сообщение frp »

Хочу разобраться с системой git. Вроде все просто и понятно кроме отката изменений. 1. Непонятно что делают параметры --soft, --hard, --mixed. 2. Соответственно непонятно как получить версию программы без нескольких последних коммитов. 3. Как после всех этих действий обратно вернуть отмененные коммиты?
PS. Раньше с системами контроля версий дела не имел.

UPD. В манах крякозябры.
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: git

Сообщение Portnov »

Всё, в общем-то, в манах написано. Коротко же. Есть несколько разновидностей "отката":
а) отменить изменения, сделанные после последнего коммита - git reset --hard HEAD; вместо HEAD можно любой другой коммит указать. Опция --hard заставит вообще забыть про эти изменения, т.е. их потом не вернуть. Если не --hard а --soft, будет только "отмотан назад" указатель HEAD (исходный будет сохранён как ORIG_HEAD). Обычно используют --hard, --soft нужно реже.
б) переключиться на версию на момент определённого коммита. Просто git checkout <идентификатор-коммита>. Вернуться назад - опять git checkout <коммит-куда-возвращаться>, например git checkout master.
в) отменить какой-то коммит где-то давно в истории. git revert <коммит>. Создаст новый коммит, отменяющий указанный. Вернуться назад - опять git checkout <куда-возвращатьcя>.

И читайте маны (всё в них расписано с примерами) и пользуйтесь поиском. Или хотя бы "читайте меня" ;) http://iportnov.blogspot.com/2008/06/git.html .
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: git

Сообщение frp »

Portnov писал(а):
29.11.2009 18:25
б) переключиться на версию на момент определённого коммита. Просто git checkout <идентификатор-коммита>. Вернуться назад - опять git checkout <коммит-куда-возвращаться>, например git checkout master.

Спасибо, именно то что меня интересует.
Portnov писал(а):
29.11.2009 18:25
И читайте маны (всё в них расписано с примерами)

Знаю, но у меня в системе кодировка UTF-8, а в манах от git - другая кодировка и получаются крякозябры. Как указать системе юзать англ. версию man-ов?

Спасибо. Просто и понятно.
Спасибо сказали:
frp
Сообщения: 1445
ОС: Debian Squeeze

Re: git

Сообщение frp »

GIT позволяет получать патчи от сторонних независимых разработчиков по e-mail;

http://www.bozaro.ru/wordpress/?p=10

Как это реализовать?
Спасибо сказали:
Аватара пользователя
Portnov
Модератор
Сообщения: 1786
Статус: Матёрый линуксоид
ОС: Debian testing/unstable

Re: git

Сообщение Portnov »

git apply < file.msg

где file.msg - файл сообщения, включающий патч (в частности, это может быть просто патч). Или git am {mbox или maildir}, чтобы применить сразу все патчи из почтового ящика. Для формирования патча в формате email-сообщения - git format-patch. В общем, git help apply, git help am, git help format-patch.
Работа: Ubuntu 9.10
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
Спасибо сказали: