如何使用 git revert 撤消提交

以下命令还原给定提交的更改,并使用还原的更改创建新提交。

git revert HEAD~x

这是在使用公共共享存储库时撤消提交的最佳方法。

如何使用 git reset 撤消提交

git reset 命令用于撤消更改。

git reset --soft HEAD~x

用对应的数字代替~x。
例如,如果指定 ~3,该命令将影响三个最新的提交。

当我们使用此命令时,我们只需撤消最后一次提交,但我们所做的更改将存储在工作树和索引中,因此 git commit 命令将创建一个与我们“撤消”的提交具有相同更改的提交“ 前。

我们可以使用提交哈希代替 HEAD~x。

git reset --soft <sha1-commit-hash>

如何使用 git checkout 撤消提交

我们可以使用 git checkout 命令使用其散列或者使用 HEAD~x 语法检出任何先前的提交。

存储库将设置为“分离的 HEAD”状态,当我们将分支更改回已建立的分支时,所有新提交都将成为孤立的。
“Detached HEAD”警告我们活动与项目的开发“分离”。
如果我们在“分离的 HEAD”状态下进行了多次提交,那么在签出到另一个分支后,Git 将让我们创建一个分支来保留这些提交。

从“分离头”状态,我们可以运行:

git checkout -b <new-branch-name>

或者

git switch -c <new-branch-name>

这将创建一个名为 <new-branch-name> 的新分支并切换到该分支。
该分支将位于我们最后一次提交不存在的新历史时间线上。

如何在 Git 中撤消最近的提交

Git 的最大优势之一是我们几乎可以撤消任何事情。
让我们来看看如何在 Git 中撤消最近的提交。

如何使用 git amend 撤销提交

git commit --amend 用于编辑最新的提交。

我们可以运行此命令将暂存更改与先前的提交合并,而不是创建一个全新的提交。
为此,请暂存更改并运行以下命令:

git commit --amend

此命令将打开编辑器并让我们更改消息。
新的更改将添加到修改后的提交中。

如果要更改最新的提交消息,可以运行此命令而无需任何分阶段更改:

git commit --amend -m "This is the correct message"

如果我们想在更改提交消息之外添加一些更改,那么我们可以像往常一样暂存更改,然后再次提交:

git add some/changed/file.ext 
git commit --amend -m "commit message"

如果你在最后一次修改之前推送了你的提交,那么你应该用 --force 强制推送你的更改(假设远程的名称是 oroirn,这是默认的):

git push oroirn <branch-name> --force

我们可以使用 --force-with-lease 代替 --force,这是一个更安全的选项,不会覆盖其他开发人员所做的工作。

日期:2020-06-02 22:16:45 来源:oir作者:oir