Git 仅将一个提交从分支A移动到分支B
我确信这个问题是重复的,但我无法找到正确的答案,因为返回的答案太多,而且每个答案都不适合我 我有一个提交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。我只想要62ecb3Git 仅将一个提交从分支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 这可能吗?如果这是常见问题、重复或不合逻辑,请道歉 我在谷歌上搜索了一下,但我找到的所有答案都让我得出了这样的
$ 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
两个分支中保持commit6
吗?这是不可能的。原因是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
两个分支中保持commit6
吗?这是不可能的。原因是Git的提交连接向后箭头(所有Git的指针都向后工作,从最新的返回到最旧的)是提交的一部分。您的提交6已存在。它指向你的提交5。要改变这一点简直是不可能的:commit 6将永远指向commit 5。正如Sukima的回答一样,您所能做的就是将commit 6复制到一个新的、稍有不同的副本,该副本指向其他地方,例如commit 2。