[英]Git revert merge commit and clear history
如果我理解正确,那么您只想保留master
分支历史中的最新/最后一次提交?
如果是,则遵循它。 它将在git log
仅提交一次即可创建一个新的master
。 请注意 ,您的工作树将相同,但master
历史记录将被清除(仅保留最新的提交)。
首先备份您的master
分支以确保安全
$ git branch master.bac # new branch called master.bac = master
复制master
分支的最新提交哈希
$ git log # copy the latest commit (top commit)
返回一个提交,并创建一个新的orphan
(没有提交历史记录的新分支)分支。
$ git checkout HEAD~1 # back to one commit
$ git checkout --orphan orphan-branch
现在,将/ master的最新提交(您之前复制的)选择/ cherry-pick到orphan-branch
。
$ git cherry-pick <commit-hash>
现在, orphan-branch
分支在git log
只有一次提交。 删除本地master
分支
$ git log
$ git branch -D master
创建具有orphan-branch
历史记录的新本地master
分支
$ git checkout master
$ git log # should show only one commit
强制推送到远程。 注意:请三思而后行,它将用您的本地/主服务器替换远程/主服务器
$ git push -f origin HEAD # replace your remote/master with local/master
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.