2.3 KiB
2.3 KiB
title | localeTitle |
---|---|
When to Undoredo | 什么时候去Undoredo |
当您对git进行一些更改时,通常需要UNDO / REDO,并意识到需要删除/还原更改。这在场景中非常常见,例如,当您对某些文件进行临时更改并忘记还原它们时,然后继续将它们添加到意外提交中。
UNDO / REDO工作流程:
假设您做了一些更改并做出如下提交:
git commit -m "Commit 1 - Some changes to the code"
git commit -m "Commit 2 - Some MORE changes to the code"
- (
git reset --soft HEAD~
):恢复最后一次提交git reset --soft HEAD~
- 做这些改变。
- 将文件添加到临时区域
git add <filenames or paths>
或git add --all
- (重做):做提交。
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
。 small -c
将打开一个用于修改提交消息的编辑器,在这种情况下它将是Commit 2 - Some MORE...
您可以根据需要编辑提交消息。
或者你可以使用大写-C
,其中git将跳过编辑器窗口, _并重_用_LAST_提交消息,在这种情况下再次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
要撤消最后n
提交。