我在分支上有一个推送提交(它不是主存储库分支)。这是我最后一次提交。我想从仓库中删除它。推送后我已经做了一些本地更改(在同一分支)。
我想将所有更改保留在本地。
我会去git revert <commit>
,然后git add .
-> git commit
-> git push origin my-branch
?
如果我错了,请纠正我,但这是我对你的情况的理解:
git commit
.git push
。如果这是正确的,那么从现在开始,您有两个选择。您可以:
git add
像以前一样 、git commit
和。git push
如果您想执行选项 2,您需要:
git add
暂存您的文件,就像创建新提交时通常所做的那样。git commit --amend
使用当前的本地更改修改先前的提交。之后,它将有一个全新的提交哈希(就 git 而言,它与之前的错误提交没有关系)。git push -f origin
强制推动您的更改。需要强制,因为您要更改分支历史记录。以下是您可以执行此操作的步骤。
备份您当地的分支机构。假设您的分支是 master 并且您的后分支名称类似于 master_backup。您可以使用下面的 git 命令。
git branch master-backup
如果你们在同一个分支。或者你也可以使用
git分支master-备份master
git revert <your commit id>
如有冲突请解决。
git push origin master
(恢复后推送您的更改)
git reset --hard master-backup
(将您的更改返回到本地主控)