如何用git重写历史记录?

时间:2015-03-19 03:09:08

标签: git

我克隆了一个项目存储库并做了一些提交。提交很脏;我搞砸了标签空间,并在途中犯了一些垃圾。因此,在提出拉动请求之前,我想让事情变得整洁。我认为最好的方法是在origin/master创建一个新分支,然后将我的旧分支中的提交逐个应用到工作副本并对新分支进行干净提交。

那么如何将其他分支的提交应用到工作副本? 这是最好的方式吗?这样的任务似乎很常见,也许已经有了这样的工作流程和工具?

1 个答案:

答案 0 :(得分:0)

假设工作树是这样的:

img

并且您希望仅将{strong> g-h 应用于origin/master。首先,使用origin/master创建一个新分支,另一个仅用于提交h

git checkout -b new-branch origin/master
git checkout -b daughter-branch h

现在,从g开始提交提交

git rebase --onto new-branch g^