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)中的更改移回工作目录。