如何从分支历史记录中删除提交?我应该使用git reset-hard HEAD吗?
当前回答
假设您尚未推送到远程存储库,则可以重新克隆存储库。这是我几次选择的方法。
其他回答
资料来源:https://gist.github.com/sagarjethi/c07723b2f4fa74ad8bdf229166cf79d8
删除上次提交
例如,您最后一次提交
git推送原点+aa61ab32^:主
现在您要删除此提交,然后使用以下简单方法
步骤
首先将分支重置为当前提交的父级用力将其推至遥控器。
git reset HEAD^--硬git推送原点-f
对于特定的提交,您希望重置如下
git reset bb676878^ --hard
git push origin -f
删除整个提交
git rebase -p --onto SHA^ SHA
显然,用您想要删除的引用替换“SHA”。该命令中的“^”是文字。
http://sethrobertson.github.io/GitFixUm/fixup.html#change_deep
git reset—软Id提交允许您删除提交,但不删除当前文件。然后使用git push-f源名称分支
git reset --hard commitId
git push <origin> <branch> --force
PS:CommitId指的是要还原回的那个
如果您刚刚弄糟了上一次提交(错误的消息,忘记添加一些更改),并想在将其推送到公共回购之前修复它,为什么不使用:
git commit --amend -m "New message here"
如果您有新暂存的更改,它们将与上一次提交(您正在尝试删除)合并,并将替换该提交。
当然,如果你在推送之后修改了一个承诺,你就是在改写历史,所以如果你这样做,一定要理解其中的含义。
如果您希望使用上一次提交的消息,也可以传递“--no edit”选项而不是“-m”。
文件:http://git-scm.com/docs/git-commit.html
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的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之间的区别