从 Git 中的远程仓库中删除提交

Abdul Jabbar 2023年1月30日 2022年4月20日
  1. 从 Git 中的本地仓库中删除提交
  2. 从 Git 中的远程仓库中删除提交
从 Git 中的远程仓库中删除提交

有时在使用 Git 时,我们会意识到提交出错并且需要删除。原因可能是客户不希望在产品中使用该功能。

要么我们引入了一个错误,要么需要再次处理,因为我们已经提交了错误的实现。

本文将讨论我们如何删除本地和远程仓库并使用 Git 命令清理所有这些仓库。

在 Git 中,我们可以通过两个不同的过程来删除提交。这些过程取决于更改,无论它们是否被推送到远程分支。

从 Git 中的本地仓库中删除提交

如果我们的更改还没有推送到远程仓库,那么我们可以通过以下命令在本地删除最近的提交:

git reset --hard HEAD~1

上面提到的命令将丢弃文件夹(工作树)中所做的所有更改,并将 HEAD 移动到 HEAD 之前的最新提交。

如果我们想在特定的提交之前删除提交,我们将运行 git log 来搜索特定的提交 id。之后,我们将使用以下提到的命令删除这些提交:

git reset --hard <sha1-commit-id>

前面提到的这个命令将丢弃工作树中所做的所有更改,并将 HEAD 移动到我们选择的提交中。

从 Git 中的远程仓库中删除提交

如果我们想从远程仓库中删除提交,我们将强制推送新的 HEAD 提交。或者,如果我们已经将更改推送到远程仓库,我们将运行以下命令:

git push origin HEAD --force

如果其他人拉了这个分支,那么最好启动一个新分支;否则,它将把它合并到他们的工作中,在这种情况下,我们需要再次推回同一个分支。

这将从本地和远程两个仓库中删除该提交。如果我们只需要从远程而不是从本地删除它,那么我们将执行以下提到的命令:

git push origin +HEAD^:branch_name

在执行这些命令之前,我们应该再看一下,因为它会删除我们所有的工作目录更改。

删除后,如果我们想再次搜索该提交,更优选的是,它会出现在 <git reflog> 中,除非我们的仓库已被垃圾回收。

Author: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.

LinkedIn

相关文章 - Git Delete