如何从分支历史记录中删除提交?我应该使用git reset-hard HEAD吗?
当前回答
假设您尚未推送到远程存储库,则可以重新克隆存储库。这是我几次选择的方法。
其他回答
为了我,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 rebase -i <commit>~1
这将在您要执行的提交之前以交互模式-i启动重新启动。编辑器将开始列出此后的所有提交。删除包含要删除的提交的行并保存文件。Rebase将完成剩下的工作,只删除该提交,并将所有其他提交重新播放到日志中。
上面的所有命令都会像提交之前一样恢复工作树和索引的状态,但不会恢复存储库的状态。如果您查看它,“已删除”提交实际上并没有被删除,它根本不是当前分支顶端的提交。
我认为没有办法用瓷命令删除提交。唯一的方法是从日志和reflog中删除它,然后执行git prune--expire-now。
将代码备份到临时文件夹。以下命令将重置服务器。
git reset --hard HEAD
git clean -f
git pull
如果要保留更改并删除最近的提交
git reset --soft HEAD^
git pull
在本地分支上重置
git reset --hard HEAD~<Number of commit> So git reset --hard HEAD~3
强制推至原点
git push -f origin