Git还原合并提交和清除历史记录

时间:2017-04-06 14:12:57

标签: git github

首先,我对此很感兴趣,但我不知道如何解决,我不想搞砸生产或掌握分支机构

这是我的情况:

enter image description here

Bassically,现在我在master分支大约200个提交中,我需要将它们转换为一个提交,以便清除master分支的历史。 提前致谢

PD:所有这些更改/操作/合并已经推送

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您只想保留sed -n '/:$/{s/.* \|://g;h;:foo g;N;y/./_/;s/'"'"'//g;s/ = /=/;s/\n.*env//gp;/break$/!b foo}' Jenkinsfile 分支历史记录中的最新/最后一次提交?

如果是,请遵循它。它将在master中创建一个只有一个提交的新master注意您的工作树将是相同的,但将清除git log历史记录(仅保留最新提交)。

首先备份您的master分支以确保安全

master

复制$ git branch master.bac # new branch called master.bac = master 分支

的最新提交哈希值
master

返回一个提交并创建一个新的$ git log # copy the latest commit (top commit) (没有提交历史记录的新分支)分支。

orphan

现在,将/ master中的最新提交(您之前复制过)转到$ git checkout HEAD~1 # back to one commit $ git checkout --orphan orphan-branch

orphan-branch

现在,$ git cherry-pick <commit-hash> 分支在orphan-branch中只有一个提交。删除本地git log分支

master

创建一个新的本地$ git log $ git branch -D master 分支,其历史记录为master历史记录

orphan-branch

强制推送到远程。 注意:三思而后行将用您的本地/主人

取代远程/主人
$ git checkout master
$ git log                  # should show only one commit