如何从分支历史记录中删除提交?我应该使用git reset-hard HEAD吗?
当前回答
在本地分支上重置
git reset --hard HEAD~<Number of commit> So git reset --hard HEAD~3
强制推至原点
git push -f origin
其他回答
删除整个提交
git rebase -p --onto SHA^ SHA
显然,用您想要删除的引用替换“SHA”。该命令中的“^”是文字。
http://sethrobertson.github.io/GitFixUm/fixup.html#change_deep
如果要删除当前正在进行但不想删除数据的提交-
git reset --soft HEAD~1
如果要删除当前正在进行的提交,并希望删除相关数据-
git reset --hard HEAD~1
PS:这些命令只会删除本地提交。
假设您尚未推送到远程存储库,则可以重新克隆存储库。这是我几次选择的方法。
如果你是IntelliJ用户,界面简直太棒了。只需单击一次,即可立即看到效果。这个地方的快捷方式:MacOS上的Cmd+9。
#[快速回答]
您有许多选择,例如:
备选方案1:git rebase-i<YourCommitId>~1将YourCommitId更改为要还原回的提交次数。备选方案2:git reset--硬YourCommitIdgit push<origin><branch>--force将YourCommitId更改为要还原回的提交次数。我不建议使用此选项,因为您可能会丢失正在进行的工作。备选方案3:git reset—软HEAD~1你可以保留你的工作,只撤销承诺。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别