在我的一个开发分支中,我对代码库做了一些更改。在我能够完成正在开发的功能之前,我必须将当前分支切换到master来演示一些功能。但仅仅使用“git checkout master”就保留了我在开发分支中所做的更改,从而破坏了master中的一些功能。因此,我所做的是在我的开发分支上提交一条提交消息“临时提交”,然后为演示签出主控。
现在,我已经完成了演示并返回到我的开发分支中,我想删除我所做的“临时提交”,同时仍然保留我所作的更改。这可能吗?
在我的一个开发分支中,我对代码库做了一些更改。在我能够完成正在开发的功能之前,我必须将当前分支切换到master来演示一些功能。但仅仅使用“git checkout master”就保留了我在开发分支中所做的更改,从而破坏了master中的一些功能。因此,我所做的是在我的开发分支上提交一条提交消息“临时提交”,然后为演示签出主控。
现在,我已经完成了演示并返回到我的开发分支中,我想删除我所做的“临时提交”,同时仍然保留我所作的更改。这可能吗?
当前回答
我想你在找这个
git reset—软HEAD~1
它撤消最近的提交,同时将该提交中所做的更改保留到登台。
其他回答
您正在查找git reset HEAD^--soft或git reset-HEAD^-mixed。
如文档中所述,重置命令有三种模式:
git reset HEAD^--软
撤消git提交。更改仍然存在于工作树(项目文件夹)+索引(--cached)中
git reset HEAD^--混合
撤消gitcommit+gitadd。工作树中仍存在更改
git reset HEAD^--硬
就像你从未对代码库做过这些更改一样。更改将从工作树中删除。
2020简单方法:
git reset <commit_hash>
(您要保留的最后一次提交的提交哈希)。
如果推送提交,则可以执行以下操作:
git push -f
您将在本地保留当前未提交的更改
首先,您可以使用以下命令查看日志-
git reflog
这将显示所有提交,然后找出要撤消的提交以及与之关联的头号,然后输入以下命令
git reset HEAD@{#NumberOfCommitYouWantToUndo}
例如git reset HEAD@{3}
git-resetHEAD@{#}显示重置后的所有未分级更改
我想你在找这个
git reset—软HEAD~1
它撤消最近的提交,同时将该提交中所做的更改保留到登台。
是的,您可以在不删除更改的情况下删除提交:
git reset @~