📅  最后修改于: 2023-12-03 14:41:28.835000             🧑  作者: Mango
在使用Git进行版本控制时,我们经常需要回滚或删除某些提交。推送到远程仓库后删除提交可以是一项非常必要的任务。现在,我们将学习如何从分支中删除推送的提交并更新远程仓库。本文将涵盖以下主题:
Git提供了许多方法来撤销提交。我们将使用以下命令来撤销提交:git revert
和git reset
。
撤销一个提交可以使用git revert
命令。git revert
将创建一个新的提交,它们将移除指定提交所做的更改。它不会销毁历史记录,因为它保留了原始提交和新的撤销提交记录。
git revert <commit-hash>
另一方面,要完全清除提交并销毁历史记录,请使用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在推送后从分支中删除提交。请记住,当您执行此操作时,请务必仔细检查您删除的提交,以及您正在提交的内容。同时,请谨慎使用强制推送更改选项。