我如何才能获得提交日期(顺序)的git cherry picks?

我如何才能获得提交日期(顺序)的git cherry picks?,git,Git,如果我从远程分支中选择提交,它将位于当前分支的顶部,因此提交的顺序将更改,并且我得到了不正确的结果。如何根据日期(当在远程分支中应用时)从远程分支中选择提交,这样提交就不会位于当前分支的顶部,而是在日期之前位于正确的位置。cherry选择总是在分支的顶端结束(并且按照给命令的顺序)。如果您想要另一个结果,git cherry pick不是您应该查看的工具 根据您的描述,听起来您有以下情况: F---G---H---I origin/master / A---B---C---D---E

如果我从远程分支中选择提交,它将位于当前分支的顶部,因此提交的顺序将更改,并且我得到了不正确的结果。如何根据日期(当在远程分支中应用时)从远程分支中选择提交,这样提交就不会位于当前分支的顶部,而是在日期之前位于正确的位置。

cherry选择总是在分支的顶端结束(并且按照给命令的顺序)。如果您想要另一个结果,
git cherry pick
不是您应该查看的工具

根据您的描述,听起来您有以下情况:

  F---G---H---I    origin/master
 /
A---B---C---D---E  master
从origin/master开始,您希望cherrypick提交,比如F和H,但不是在分支的顶端,而是在两者之间,可能如下所示:

  F---G---H---I              origin/master
 /
A---B---F'---C---H'---D---E  master
有几种方法可以获得这种状态。下面的示例从B创建一个新分支,Cherry按照所需的顺序选择提交,最后使用覆盖原始分支的重命名操作重新创建主分支

$ git checkout -b newmaster B
$ git cherry-pick F C H D E
$ git branch -M newmaster master
如果您有大量的提交,您可能希望使用git rev list等自动化操作,但如果不了解更多情况,就很难给出建议

你提到过几次约会。虽然Git确实为提交记录了两种类型的时间戳,但在您的情况下没有一种可能有用。当从其他分支中选择更改时,主要关注的是分支拓扑,即提交H在提交G之后,而提交G在提交F之后。分支之间的拓扑比较,如上面示例中的origin/master和master,是不可能的。换言之,如果不实际应用补丁,就不可能确定樱桃采摘的正确顺序