你能用git及时将提交移到树上吗?

你能用git及时将提交移到树上吗?,git,Git,是否可以将提交中的更改移动到树上的其他更改之前,以便我可以测试这些提交 在本例中,我想将树中的“Romoved sess_match_useragent”移动到“Update core to 2.1.0”之前 谢谢是的,使用git-rebase-i refspec 这里,refspec将是“更新核心”提交之前提交的标识符(SHA1或相对refspec)。这将打开一个包含提交及其顺序的编辑器:将提交的pick行移到“Updated core”行之前,然后退出编辑器:git将重写分支 但是请注意,

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

在本例中,我想将树中的“Romoved sess_match_useragent”移动到“Update core to 2.1.0”之前


谢谢

是的,使用
git-rebase-i refspec

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

但是请注意,您可能需要解决冲突

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


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

您可以创建一个单独的分支,然后选择要测试的更改

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

这不会影响现有的历史记录。然而,通常你会为你想要开发/修复和测试的每个特性/缺陷创建一个单独的分支,然后你只使用这个分支,直到你满意为止。然后将其合并回
develope
,或
master

您还可以使用
HEAD~17
表示在
HEAD
之前提交17次(或
staging~17
)。