你可以使用git将提交提交回树/及时吗?

时间:2012-01-06 11:22:32

标签: git

是否可以将提交中的更改移到树上的其他更改之前,以便我可以测试这些提交。

在这个例子中,我想将'Romoved sess_match_useragent'移动到树中的'Updated core to 2.1.0'之前

mytree

由于

2 个答案:

答案 0 :(得分:7)

是的,git rebase -i refspec

此处,refspec将是“更新核心”提交之前的提交的标识符(SHA1或相对refspec)。这将打开一个包含提交及其顺序的编辑器:在“更新的核心”之前移动提交的pick行并退出编辑器:git将重写分支。

请注意,您可能必须解决冲突。

阅读编辑器中的帮助以及提交列表:它包含许多有用的提示,您可以做很多事情。例如,如果您犯了拼写错误,只需reword提交消息......

在你的情况下,如你所指出的,refspec可以HEAD~17,即“17在提交HEAD之前提交”(HEAD始终是你当前所在分支的尖端)。

答案 1 :(得分:0)

您可以创建一个单独的分支,然后cherry-pick您要测试的更改。

git checkout -b feature/foo [sha of "Updated core to 2.1.0"]
git cherry-pick [sha of "Removed sess_match_useragent"]

这不会影响现有的历史记录。但是,通常您为要开发/修复的每个功能/ bug创建一个单独的分支,并相互测试separat,然后您只使用此分支,直到您对它感到满意为止。然后将其合并回developmaster