迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 操作系统 > Git >

在 Git 中删除未推送的提交

作者:迹忆客 最近更新:2023/03/30 浏览次数:

本文将教授如何在 Git 中删除未推送的提交。

Git 用于协作开发环境中,以跟踪对项目目录中的文件所做的更改。Git 使用提交来跟踪本地和远程 Git 仓库的更改。

人们可能希望不时从本地 Git 仓库中删除未推送的提交。

使用 git reset 命令删除未推送的提交。我们将通过一个例子来说明这一点。


使用 git reset 命令删除 Git 中未推送的提交

每当我们想要提交对项目目录的更改时,我们可以使用 git addgit commit 命令提交更改。

使用 git commit 命令时,会在本地 Git 仓库中创建提交。然后我们可以使用 git push 命令将本地 Git 仓库中的提交推送到远程 Git 仓库。

有时,我们可能意识到我们不想将提交推送到远程仓库,而只是提交到本地仓库。在这种情况下,我们可以使用 git reset 命令取消提交或删除本地 Git 仓库中的最后提交。

git reset 是用于撤消对 Git 仓库状态的本地更改的命令。

假设我们对工作目录进行了更改。我们可以使用 git status 命令查看更改的状态。

$ git status
On branch main
Your branch is up to date with 'origin/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)
  (commit or discard the untracked or modified content in submodules)
        modified:   mynotes.txt

我们可以看到 mynotes.txt 文件已被修改并符合提交条件。

要提交修改,我们需要首先使用 git add 命令将更改添加到本地 Git 仓库的暂存索引。我们必须按如下方式运行 git add 命令。

$ git add .
$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   mynotes.txt

因此,在使用 git status 命令时,我们可以看到这些变化现在已经被暂存了。

我们可以将更改提交到本地 Git 仓库。我们必须使用 git commit 命令为阶段性更改创建提交。

我们运行 git commit 命令如下。

$ git commit -m "updated mynotes"
[main e1b08a5] updated mynotes
 1 file changed, 1 insertion(+)

现在,我们再次运行 git status 命令来查看状态。

$ git status
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
  (use "git push" to publish your local commits)

我们现在可以看到本地仓库中的本地分支比远程 origin/mainGit 仓库分支领先一个提交。

我们可以使用 git push 命令将提交推送到远程 Git 仓库。但我们没有这样做,而是使用 git reset 命令删除未推送的提交,如下所示。

$ git reset --soft HEAD~1

带有 --soft 选项的 git reset 命令从本地 Git 仓库中删除未推送的提交,但保留本地更改。HEAD~1 指定 git reset 命令仅删除最后一次提交。

我们现在将运行 git status 来检查仓库的状态,如下所示。

$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   mynotes.txt

因此,我们可以看到未推送的提交不再存在。不过,修改仍在进行中。

使用 --hard 选项而不是 --soft 命令选项和 git reset 命令将删除 HEAD~1 指定的最近提交并完成本地更改。

我们可以使用 --hard 选项运行 git reset 命令。

$ git reset --hard HEAD~1

这也会删除未跟踪的文件或目录以及跟踪的修改。因此,请谨慎使用它,否则我们可能会丢失所有已完成的工作。

因此,我们学会了在本地 Git 仓库中删除未推送的提交。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Windows 系统中卸载 git

发布时间:2023/04/09 浏览次数:223 分类:Git

在这篇简短的文章中,我们将学习如何卸载 Git,以及如何在从个人计算机的目录中卸载 Git 后删除这些文件。

如何检查 Git 的版本

发布时间:2023/04/09 浏览次数:160 分类: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 命令,但这很麻烦,尤其是当我们有大量不冲突的文件时。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便