繁体   English   中英

如何在git中将文件历史记录从一个分支合并到另一个分支?

[英]How can I merge a file history from a branch to another in git?

因此,首先检查下图,我试图代表我的需求 git情况

绿色方块是提交,黄色,棕色和红色是这些提交的一部分(在我的情况下,具体来说是提交中分布的3个文件)。

对开发人员没有进一步的更改

实际发生的情况:我在一个分支上工作,发现一些更改实际上对dev分支有用,而实际上与dev2分支dev2 所以我希望在dev分支上进行这些更改。

git checkout
git merge

我实际上希望修改脱离dev2分支并进入dev分支,所以如果我执行checkout> commit,则修改将在两个分支上进行,这就是为什么我不愿意这样做。

这有可能吗? 我该怎么做?

您可以使用git log来找到应该在dev(红色方块)中的最后一次提交的sha ,然后转到master分支checkout master然后说git merge SHA ,其中红色方块的SHA。 这在git中很常见。 分叉的回购经常发生,合并到原始版本的更新中。

请记住,尽管这可以获取全部提交,但是我不确定这是否是您想要的。 如果您只想从这些提交中获取一些文件,则要困难得多。 那你应该看看这个问题

是的,这是可能的。 您需要做三件事:

  • 签出原始分支: git checkout dev
  • 应用所需的提交: git cherry-pick yellowgit cherry-pick browngit cherry-pick red
  • dev2 devgit checkout dev2git rebase --onto dev

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM