Git 仅将一个提交从分支A移动到分支B

Git 仅将一个提交从分支A移动到分支B,git,Git,我确信这个问题是重复的,但我无法找到正确的答案,因为返回的答案太多,而且每个答案都不适合我 我有一个提交1->2->3->4->5->6的分支(提交6是最近的) 我有提交1->2的分支B(2是最新的) 我只想将commit 6从分支A移到分支B。所以3、4、5应该保留在分支A中。。。。我只是把提交6移到分支B 我想要的最终结果是 A=1->2->3->4->5->6 B=1->2->6 这可能吗?如果这是常见问题、重复或不合逻辑,请道歉 我在谷歌上搜索了一下,但我找到的所有答案都让我得出了这样的

我确信这个问题是重复的,但我无法找到正确的答案,因为返回的答案太多,而且每个答案都不适合我

我有一个提交1->2->3->4->5->6的分支(提交6是最近的)

我有提交1->2的分支B(2是最新的)

我只想将commit 6从分支A移到分支B。所以3、4、5应该保留在分支A中。。。。我只是把提交6移到分支B

我想要的最终结果是

A=1->2->3->4->5->6 B=1->2->6

这可能吗?如果这是常见问题、重复或不合逻辑,请道歉

我在谷歌上搜索了一下,但我找到的所有答案都让我得出了这样的结论:在6点之前的每一次承诺都会发生改变。。。所以我不可能不拿3,4,5就拿6

我在谷歌上找到了这个教程

但在这里,一旦完成了樱桃采摘,76cada-62ecb3将移动到master。我只想要62ecb3

$ git checkout branch-B
$ git cherry-pick commit-6
$ git checkout branch-A
$ git reset --hard HEAD^
看起来是这样的
git签出分支-B

A--B            (branch-B) (HEAD)
    \
     C--D--E--F (branch-A)
git cherry pick F

A--B--F'         (branch-B) (HEAD)
    \
     C--D--E--F  (branch-A)
git签出分支机构-A

A--B--F'         (branch-B)
    \
     C--D--E--F  (branch-A) (HEAD)
git重置——硬头^

A--B--F'         (branch-B)
    \
     C--D--E     (branch-A) (HEAD)
            \
             F   (detached and will be garbage collected)
看起来是这样的
git签出分支-B

A--B            (branch-B) (HEAD)
    \
     C--D--E--F (branch-A)
git cherry pick F

A--B--F'         (branch-B) (HEAD)
    \
     C--D--E--F  (branch-A)
git签出分支机构-A

A--B--F'         (branch-B)
    \
     C--D--E--F  (branch-A) (HEAD)
git重置——硬头^

A--B--F'         (branch-B)
    \
     C--D--E     (branch-A) (HEAD)
            \
             F   (detached and will be garbage collected)

您点上的解决方案可能存在的重复问题是,对于最近的提交,之前的所有提交都会移动。我不希望在最近的提交之前进行提交。只有最近的提交。我只想要E。我不想要C和D。你提到:“我想要的最终结果是A=1->2->3->4->5->6B=1->2->6”。那么,您想在
A
B
两个分支中保持commit
6
吗?这是不可能的。原因是Git的提交连接向后箭头(所有Git的指针都向后工作,从最新的返回到最旧的)是提交的一部分。您的提交6已存在。它指向你的提交5。要改变这一点简直是不可能的:commit 6将永远指向commit 5。正如Sukima的回答一样,您所能做的就是将commit 6复制到一个新的、稍有不同的副本,该副本指向其他地方,例如commit 2。您所指向的解决方案可能存在的问题是,在最近一次提交时,之前的所有提交都会移动。我不希望在最近的提交之前进行提交。只有最近的提交。我只想要E。我不想要C和D。你提到:“我想要的最终结果是A=1->2->3->4->5->6B=1->2->6”。那么,您想在
A
B
两个分支中保持commit
6
吗?这是不可能的。原因是Git的提交连接向后箭头(所有Git的指针都向后工作,从最新的返回到最旧的)是提交的一部分。您的提交6已存在。它指向你的提交5。要改变这一点简直是不可能的:commit 6将永远指向commit 5。正如Sukima的回答一样,您所能做的就是将commit 6复制到一个新的、稍有不同的副本,该副本指向其他地方,例如commit 2。