4.1 KiB
title | localeTitle |
---|---|
When to Undoredo | Когда до Undoredo |
Обычно вы хотите использовать UNDO / REDO, когда вы совершаете некоторые изменения в git, и понимаете, что изменения необходимо удалить / вернуть. Это очень распространено в сценариях, например, когда вы делали временные изменения в некоторых файлах и забывали их вернуть, а затем приступили к их добавлению к ошибке.
Рабочий процесс UNDO / REDO:
Предполагая, что вы внесли некоторые изменения и совершили такие действия, как:
git commit -m "Commit 1 - Some changes to the code"
git commit -m "Commit 2 - Some MORE changes to the code"
- (UNDO-ing): вернуть обратно последнюю команду
git reset --soft HEAD~
- Сделайте изменения.
- Добавьте свои файлы в промежуточную область
git add <filenames or paths>
илиgit add --all
- (REDO-ing): выполнить фиксацию.
git commit -c ORIG_HEAD
илиgit commit -C ORIG_HEAD
Как это работает?
Теперь, когда вы знаете, что поток позволяет понять, как это работает за кулисами.
Step 1
сбрасывает последнюю фиксацию, т.е."Commit 2 - Some MORE..."
обратно в фиксацию"Commit 1 - Some..."
.- На
Step 2
вы делаете изменения, которые вы сочтете подходящими для файлов. - На
Step 3
вы добавляете измененные файлы в промежуточную область либо выборочно сgit add <filenames>
либо все файлы сgit add --all
. - На последнем этапе вы совершаете изменения в промежуточной области.
Примечание: вы можете использовать -c
или -C
. Маленький -c
откроет редактор для модификации сообщения фиксации, в этом случае это будет Commit 2 - Some MORE...
Вы можете редактировать сообщение фиксации так, как хотите.
Или, альтернативно, вы можете использовать caps -C
, где git пропускает окно редактора и повторно использует сообщение LAST commit, которое в этом случае является Commit 2 - Some MORE...
Повторное использование сообщения «То же» фиксации также известно как повторное / повторное выполнение.
Неэксплуатация перед фиксацией
Чтобы отменить изменение, поставленное перед фиксацией, просто запустите git reset <file>
или git reset
чтобы отключить все изменения до фиксации.
Примечание. В более старых версиях git команды были git reset HEAD <file>
и git reset HEAD
соответственно. Это было изменено в Git 1.8.2
Некоторые дополнительные трюки:
Вы можете возвратить любое количество git reset --soft HEAD~n
используя git reset --soft HEAD~n
где вы хотите отменить последние n
коммитов.
Attribution:
Эта статья основана на вопросе переполнения стека здесь и здесь .