撤消 Git 中的更改
本文介绍了撤消对本地和远程仓库所做更改的各种命令。这些命令包括:
使用 git log
命令检查 Git 中的提交历史
让我们首先看看我们如何检查我们的提交历史。我们使用 git log
命令检查这一点。
pc@JOHN MINGW64 ~/Git (main)
$ git log
commit 195e5c362975354d62ebc469da2e3cd276c7da03 (HEAD -> main)
Author: John <wachirajohnie11@gmail.com>
Date: Mon Feb 21 12:11:12 2022 +0300
commit 7b19db4b35c1ca15e5ecb8df1f805d44aad62e5f
Author: John <wachirajohnie11@gmail.com>
Date: Mon Feb 21 10:09:31 2022 +0300
first commit
该命令仅显示你的工作分支的历史记录。要检查所有分支,请使用以下命令。
git log --branches=*
使用 git checkout
命令查看特定的提交,如下所示。
现在你可以访问文件而不会篡改项目的当前状态。使用 git checkout main
命令返回到当前项目工作区。
使用 git clean
命令撤消 Git 中的更改
我们使用 git clean
命令撤消对未跟踪文件的更改。你无法撤消 git clean
命令。
-
git clean -n
选项充当试用命令。它只显示未跟踪的文件,但不会删除它们。例子:
pc@JOHN MINGW64 ~/Git (main) $ git clean -n Would remove Hello world.txt Would remove Test1.txt
-
git clean --force
命令删除工作目录中所有未跟踪的文件和文件夹。你可以使用.gitignore
命令抛出异常。例子:
pc@JOHN MINGW64 ~/Git (main) $ git clean --force Removing Hello world.txt Removing Test1.txt
让我们检查文件是否在我们的目录中。
pc@JOHN MINGW64 ~/Git (main) $ git status On branch main nothing to commit, working tree clean
输出显示一个干净的分支。该命令成功删除了文件。
使用 git revert
命令撤消 Git 中的更改
git revert
命令作用于提交所做的更改并覆盖它。我们用它来回到某个点并进行更改。
让我们使用命令来更改我们的 first commit
。
git revert first commit
#[first commit [7b19db4] Revert 'first commit'
#1 file changed, 1 deletion(-)
你必须通过提交参考。
使用 git reset
命令撤消 Git 中的更改
我们将介绍的最后一个命令是 git reset
。该命令在 HEAD
上运行。
-
git reset --hard
选项更改指定的提交。但是,暂存索引和工作目录中的任何更改都与更改相匹配。所有暂存的提交都会在此过程中丢失。例子:
$ git reset --hard HEAD is now at 78129a6 Revert "$first commit"
该命令对
HEAD
执行硬重置。 -
git reset --mixed
命令将临时索引中的更改保存到你的工作目录。例子:
$ git reset --mixed Unstaged changes after reset: M .bash_history M text.txt.txt M text.txt.txt.bak
该命令已将未完成的更改从输出中保存到我们的工作目录中。让我们检查一下我们分支的状态。
$ git status On branch main Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: .bash_history modified: text.txt.txt modified: text.txt.txt.bak Untracked files: (use "git add <file>..." to include in what will be committed) .bash_history.bak no changes added to commit (use "git add" and/or "git commit -a")
-
git reset --soft
命令仅更改提交历史记录。默认指针始终是HEAD
。例子:
pc@JOHN MINGW64 ~/Git (main) $ git reset --soft pc@JOHN MINGW64 ~/Git (main) $ git status On branch main Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: .bash_history modified: text.txt.txt modified: text.txt.txt.bak Untracked files: (use "git add <file>..." to include in what will be committed) .bash_history.bak no changes added to commit (use "git add" and/or "git commit -a")
从上面的输出中,我们的工作目录和暂存索引保持不变。使用提交的哈希值来重置特定的提交。
相关文章
如何在 Windows 系统中卸载 git
发布时间:2023/04/09 浏览次数:223 分类:Git
-
在这篇简短的文章中,我们将学习如何卸载 Git,以及如何在从个人计算机的目录中卸载 Git 后删除这些文件。
Git 如何重命名本地分支
发布时间:2023/04/09 浏览次数:64 分类:Git
-
大多数情况下,重命名分支机构是由于上述情况。 因此,在本教程中,我们将学习使用下面提到的技术更改本地 Git 分支的名称。
重命名 Git 存储库中的文件和目录
发布时间:2023/04/09 浏览次数:102 分类:Git
-
在本文中,我们将讨论 git 中的重命名过程。 我们使用 Git Rename 来更改工作目录中文件和文件夹的名称。
在 Git 中取消初始化存储库
发布时间:2023/04/09 浏览次数:187 分类:Git
-
本本文介绍如何通过 Git 命令行取消初始化 Git 存储库。git init 命令开发一个新的空置 Git 存储库。 它还用于重新初始化已经存在的 Git 存储库。
Git 仓库名称该如何命名
发布时间:2023/04/09 浏览次数:208 分类:Git
-
使用 Git 时,选择一个简洁且最新的存储库名称是一项艰巨的任务。本教程介绍了如何以独特的方式命名 Git 存储库。
配置 Git 以忽略文件模式更改
发布时间:2023/04/09 浏览次数:67 分类:Git
-
本文讨论配置 Git 以忽略文件更改 chmod 所需的步骤。 如果您更改 Git 正在跟踪的文件的权限,系统将在该文件中注册更改。
在 Git 中暂存已删除的文件
发布时间:2023/04/09 浏览次数:93 分类:Git
-
本文讨论了在 Git 中暂存已删除文件的必要步骤。我们知道 rm 命令可以删除一个文件,而无需将其从工作目录中移除。 那么,我们如何暂存已删除的文件以进行提交呢?
在 Git 中显示冲突文件
发布时间:2023/04/09 浏览次数:139 分类:Git
-
本文讨论在 Git 中列出冲突文件的最简单和最干净的方法。 我们可以使用 git status 命令,但这很麻烦,尤其是当我们有大量不冲突的文件时。