Git:相当于交互式提交修改?

时间:2014-12-27 17:19:37

标签: git

我提交了一个开发分支,它意外地包含了一些我想要删除的更改,以及一些应该进入单独的未来提交的更改。

我正在寻找的内容相当于,好像我在当前开发分支的HEAD^的分叉分支上进行了交互式合并,并逐行选择了更改,除了我喜欢在原始开发中执行它,修改提交历史记录的分支,以便提交作为一组干净的更改存在,而不是来自不同分支的交互式合并。 这可能吗?是否有比上述更好的替代工作流程?

此处也提出了类似的问题:Break a previous commit into multiple commits 但是提供的解决方案涉及将不同的文件从分段添加为单独的提交,而我需要修改相同文件中的更改。

1 个答案:

答案 0 :(得分:2)

执行所需操作的一种方法是在保留更改的同时回滚提交,然后批量提交更改。

撤消上次提交并保持更改:

git reset --soft HEAD~1

这与git reset --hard HEAD~1形成鲜明对比,后者会在提交时删除更改。

以交互方式添加文件的一部分:

git add --patch filename.x

有关以交互方式添加文件部分的更多详细信息,请参阅https://stackoverflow.com/a/1085191/429758