1、执行了merge但没有commit
# 撤销merge
git merge --abort
2、撤回上次或者上上次提交代码
要撤销上一次提交或上上次提交的代码,有两种常用的方法可以实现:
2.1. 使用 git revert 撤销提交:
# 撤销上一次提交
git revert HEAD
# 撤销上上次提交
git revert HEAD^
这些命令将创建一个新的提交,将先前提交的更改撤销,并将更改应用于代码库。可以使用 -n 选项来阻止自动提交,并在撤销所有所需的提交后手动提交更改。
2.2. 使用 git reset 回退提交:
# 回退上一次提交
git reset HEAD~1
# 回退上上次提交
git reset HEAD~2
注意,git reset
命令是危险的操作,它会丢弃提交历史记录,并且如果已经将更改推送到远程仓库,则可能会导致问题。
3、撤销到指定的提交
3.1. 使用 git log
命令查找要回退到的提交的 SHA-1 值或引用名称。例如,要查找提交记录并找到要回退到的提交的 SHA-1 值,使用以下命令:
git log --oneline
此命令将显示提交记录列表,每个提交记录都有一个唯一的 SHA-1 值和提交消息。
3.2. 使用 git reset
命令将分支回退到指定的提交。例如,如果要回退到 SHA-1 值为 abc123 的提交,使用以下命令:
git reset abc123
默认情况下,git reset
使用 mixed 模式,这将保留提交之后的更改,但将其放置在暂存区中。如果希望彻底丢弃提交之后的所有更改,使用 --hard
选项:
git reset --hard abc123
注意,这将删除提交历史记录,并且如果已经将更改推送到远程仓库,则可能会导致问题。
4、撤销 git add
在Git中,可以使用git reset
命令来撤销已经使用git add
添加到暂存区的文件。以下几种方法可以实现:
4.1 撤销所有已添加的更改:
如果您想撤销所有使用git add
添加到暂存区的更改,可以使用以下命令:
git reset HEAD
这会将所有暂存的更改移回工作目录,但不会影响实际的文件内容。
4.2 撤销特定文件的更改:
如果只想撤销某个特定文件的更改,可以运行以下命令:
git reset HEAD path/to/your/file
将path/to/your/file
替换为要撤销更改的文件路径。
4.3 撤销最后一次git add的更改:
如果您只想撤销最后一次git add
添加到暂存区的更改,可以使用以下命令:
git reset HEAD^
这会将最后一次提交(即最后一次git add
)中的更改移回工作目录。