如何从分支历史记录中删除提交?我应该使用git reset-hard HEAD吗?
当前回答
将代码备份到临时文件夹。以下命令将重置服务器。
git reset --hard HEAD
git clean -f
git pull
如果要保留更改并删除最近的提交
git reset --soft HEAD^
git pull
其他回答
在我的情况下,我对这只小狗的魔法代码是这样的:
git reset --hard @{u}
测试一下,告诉我。我试过几种不同的方法,但只有这一种对我有帮助。
git重置--硬HEAD~1你现在将处于前一个位置。拉动树枝。推送新代码。提交将从git中删除
资料来源:https://gist.github.com/sagarjethi/c07723b2f4fa74ad8bdf229166cf79d8
删除上次提交
例如,您最后一次提交
git推送原点+aa61ab32^:主
现在您要删除此提交,然后使用以下简单方法
步骤
首先将分支重置为当前提交的父级用力将其推至遥控器。
git reset HEAD^--硬git推送原点-f
对于特定的提交,您希望重置如下
git reset bb676878^ --hard
git push origin -f
我附上这个答案是因为我不明白为什么任何刚刚尝试提交工作的人都会因为使用Git时出错而想要删除所有工作!
如果您想保留您的工作,只需“撤消”提交命令(在推送到repo之前捕获):
git reset --soft HEAD~1
不要使用--hard标志,除非您希望销毁自上次提交以来正在进行的工作。
为了我,rebase做了这个把戏
$ git rebase -i HEAD~98
# Delete everything except for the most recent commit on the shown editor caused by "rebase"
$ git push origin -f production-static
注:在强制推送以减少我的评论之后。然后我推送了另一组文件,然后在另一台计算机上尝试使用相同的“存储库和分支”。令人惊讶的是,没有冲突。这成为了我减少存储库大小的方法,同时避免了对使用相同git的其他本地用户的拉取冲突
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的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之间的区别