Хочу разобраться с системой git. Вроде все просто и понятно кроме отката изменений. 1. Непонятно что делают параметры --soft, --hard, --mixed. 2. Соответственно непонятно как получить версию программы без нескольких последних коммитов. 3. Как после всех этих действий обратно вернуть отмененные коммиты?
PS. Раньше с системами контроля версий дела не имел.
UPD. В манах крякозябры.
git (откат изменений)
Модератор: Модераторы разделов
-
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: git
Всё, в общем-то, в манах написано. Коротко же. Есть несколько разновидностей "отката":
а) отменить изменения, сделанные после последнего коммита - 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 .
а) отменить изменения, сделанные после последнего коммита - 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
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru
-
- Сообщения: 1445
- ОС: Debian Squeeze
Re: git
Спасибо, именно то что меня интересует.
Знаю, но у меня в системе кодировка UTF-8, а в манах от git - другая кодировка и получаются крякозябры. Как указать системе юзать англ. версию man-ов?
Спасибо. Просто и понятно.
-
- Сообщения: 1445
- ОС: Debian Squeeze
Re: git
GIT позволяет получать патчи от сторонних независимых разработчиков по e-mail;
http://www.bozaro.ru/wordpress/?p=10
Как это реализовать?
-
- Модератор
- Сообщения: 1786
- Статус: Матёрый линуксоид
- ОС: Debian testing/unstable
Re: git
git apply < file.msg
где file.msg - файл сообщения, включающий патч (в частности, это может быть просто патч). Или git am {mbox или maildir}, чтобы применить сразу все патчи из почтового ящика. Для формирования патча в формате email-сообщения - git format-patch. В общем, git help apply, git help am, git help format-patch.
где 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
Дом: Debian testing/unstable и на всякий случай winxp в virtualbox.
Для разнообразия: моя домашняя страница -http://iportnov.ru