Инструменты пользователя

Инструменты сайта


prog:git-start

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
prog:git-start [2022/11/19 15:56]
Alexey Leonchik
prog:git-start [2022/11/20 15:14] (текущий)
Alexey Leonchik
Строка 661: Строка 661:
  1 file changed, 1 insertion(+)  1 file changed, 1 insertion(+)
 </code> </code>
 +
 +
 +Перейти на нужный коммит. Клонируем репозиторий как обычно.
 +
 +<code>
 +git clone <url>
 +</code>
 +
 +В истории (на сайте или используя git log) находим нужный коммит или тег и переходим на него
 +
 +<code>
 +git checkout <хеш коммита или тег>
 +</code>
 +
 +Можно указать не полный хеш а только уникальную его часть.
 +
 +Опционально. Делаем ветку и переходим на нее
 +
 +<code>
 +git checkout -b my-fork
 +</code>
 +
 +Удалить последний коммит.
 +
 +Для отмены последнего коммита, если изменения ещё не опубликованы на сервер (не сделан git push) воспользоваться командой:
 +
 +<code>
 +git reset --soft HEAD^
 +</code>
 +
 +При этом изменённый код удалён не будет (будет зелёным цветом в git status). Вы можете подправить код и повторить коммит.
 +
 +Это работает, если вы не опубликовали свои изменения. Если же вы уже опубликовали изменения, то не остается ничего другого, как сделать коммит, который отменяет какой-то коммит (sha1 коммита можно посмотреть командой git log), например:
 +
 +<code>
 +git revert sha1
 +</code>
 +
 +--soft - отменит коммит, но сохранит изменения в файлах
 +--hard - отменит коммит и удалит изменения, сделанные коммитом.
 +
 +<code>
 +git reset --soft HEAD~2
 +</code>
 +
 +отменит 2 последних коммита, сохранив изменения. Будут видны в git status. 
 +
 +Откатиться назад на 2 коммита:
 +
 +<code>
 +git reset --hard HEAD~2
 +</code>
 +
 +Другими словами, отменить 2 последних коммита.
  
prog/git-start.txt · Последнее изменение: 2022/11/20 15:14 — Alexey Leonchik