📜  git 在推送后从分支中删除提交 - TypeScript (1)

📅  最后修改于: 2023-12-03 14:41:28.835000             🧑  作者: Mango

Git在推送后从分支中删除提交 - TypeScript

在使用Git进行版本控制时,我们经常需要回滚或删除某些提交。推送到远程仓库后删除提交可以是一项非常必要的任务。现在,我们将学习如何从分支中删除推送的提交并更新远程仓库。本文将涵盖以下主题:

  • 撤销提交
  • 远程和本地上的分支
  • 删除推送的提交
  • 强制推送更改
撤销提交

Git提供了许多方法来撤销提交。我们将使用以下命令来撤销提交:git revertgit reset

使用git revert

撤销一个提交可以使用git revert命令。git revert将创建一个新的提交,它们将移除指定提交所做的更改。它不会销毁历史记录,因为它保留了原始提交和新的撤销提交记录。

git revert <commit-hash>
使用git reset

另一方面,要完全清除提交并销毁历史记录,请使用git reset命令。

git reset --hard <commit-hash>

这将移除指定提交和之后的所有提交。

远程和本地上的分支

在进行更改之前,我们需要理解Git仓库中的分支。Git仓库通常有本地和远程分支。本地分支是在您的本地计算机上工作的Git分支,而远程分支是在远程Git服务器上的分支。

您将在本地计算机上进行更改,然后将更改推送到远程Git仓库。

git push <remote-server> <branch>

如果您不知道有哪些远程分支,您可以使用以下命令获取列表:

git branch -r

在这个例子中,我们有一个名为feature/new-feature的分支。

git push origin feature/new-feature
删除推送的提交

在将更改推送到远程分支后,您可以将其删除。要从远程分支中删除提交,请使用以下命令:

git revert <commit-hash>

如果您希望删除远程分支上的提交,则需要先将更改推送到另一个分支或回退到无需删除的提交。由于我们已经将更改推送到远程分支,我们将使用回退方法。

git reset --hard HEAD~1

这将删除最后一个提交。

git push origin -f

重要说明:由于我们已经删除了提交并更改了历史记录,所以您需要使用-f选项进行强制推送。请务必谨慎地使用此选项,因为它将覆盖所有现有更改。

强制推送更改

强制推送更改是在更改发生冲突时,必须执行的一种操作。当您从远程分支中删除提交时,您必须使用git push命令来强制更新远程分支。

git push <remote-server> <branch> -f

现在,您已经学会了如何使用Git在推送后从分支中删除提交。请记住,当您执行此操作时,请务必仔细检查您删除的提交,以及您正在提交的内容。同时,请谨慎使用强制推送更改选项。