Каковы разрушительные команды в мерзавце?

Я читал, тот Мерзавец главным образом добавляет информацию об истории репозитория, пытаясь помнить каждое внесенное изменение, но что существуют также команды, которые вносят необратимые изменения.

Каковы команды, на которые я должен действительно обратить внимание и избегать использования неправильно, потому что нет никакого возвращения?

11
задан Ken Williams 12 April 2016 в 18:39
поделиться

4 ответа

Здесь есть два вида «деструктивных»: команды, которые разрушают вашу историю git, и команды, которые отменяют изменения в вашей рабочей копии.

Команды, отменяющие изменения рабочего дерева :

  1. git reset
  2. git checkout

Как уже упоминалось другими, комбинация журнала ссылок и того факта, что объекты git не получают сразу Отказано (если вы не включили автоматическую очистку) означает, что вы обычно можете отменить такие операции, как git reset / rebase / merge .

Эти команды, однако, на самом деле отбрасывают объекты git , исключая возможность отмены:

  1. git gc (по умолчанию это удаляет недоступные объекты, которым не менее 2 недель)
​​
11
ответ дан 3 December 2019 в 04:31
поделиться

Вы можете потерять незафиксированные изменения с помощью команды git reset. Если ваши изменения зафиксированы, вы будете защищены рефлогом в течение нескольких дней, прежде чем он будет очищен gc.

Например, если вы checkout, rebase, reset или merge, которые вносят изменения, вы можете вернуться к предыдущей фиксации, выполнив команду reflog и используя reset для сброса HEAD к старой фиксации.

3
ответ дан 3 December 2019 в 04:31
поделиться

git reset --hard невозможно отменить

3
ответ дан 3 December 2019 в 04:31
поделиться

Согласно http://blog.reverberate.org/2009/07/30/gits-needs-a-new-interface/

 $ git checkout foo.c

... будет перезаписывать любые локальные изменения, которые вы можете иметь в foo.c, не спрашивая.

7
ответ дан 3 December 2019 в 04:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: