如何在git中将文件历史从一个分支合并到另一个分支?
因此,首先检查下图,我试图表示我需要什么 绿色方框是提交,黄色、棕色和红色是这些提交的一部分(在我的例子中,提交到通过提交传播的3个文件) 在dev上没有进一步的更改 实际发生的情况:我正在处理一个分支,发现一些更改实际上对如何在git中将文件历史从一个分支合并到另一个分支?,git,git-merge,Git,Git Merge,因此,首先检查下图,我试图表示我需要什么 绿色方框是提交,黄色、棕色和红色是这些提交的一部分(在我的例子中,提交到通过提交传播的3个文件) 在dev上没有进一步的更改 实际发生的情况:我正在处理一个分支,发现一些更改实际上对dev分支有用,并且实际上与dev2分支无关。因此,我希望在dev分支上进行这些更改 git checkout git merge 实际上,我希望修改离开dev2分支进入dev分支,因此如果我执行checkout>commit,修改将在两个分支上进行,这就是为什么我不想这
dev
分支有用,并且实际上与dev2
分支无关。因此,我希望在dev
分支上进行这些更改
git checkout
git merge
实际上,我希望修改离开dev2
分支进入dev
分支,因此如果我执行checkout>commit,修改将在两个分支上进行,这就是为什么我不想这样做
这可能吗?我该怎么做呢?您可以使用
git log
,找到上次提交的sha
,该提交应该在dev(红场)中,然后转到您的主分支checkout master
,只需说出git merge sha
红场的sha。这在git中很常见。分叉式回购经常发生,合并到原始回购的更新中
请记住,虽然这会得到整个提交,但我不确定这是否是您想要的。如果您只需要这些提交中的一些文件,那么这将非常困难。然后你应该看看。你可以通过使用
git log
在dev(红场)中找到上次提交的sha
,然后转到你的主分支签出主控
,然后说git merge sha
红场的where sha。这在git中很常见。分叉式回购经常发生,合并到原始回购的更新中
请记住,虽然这会得到整个提交,但我不确定这是否是您想要的。如果您只需要这些提交中的一些文件,那么这将非常困难。然后你应该看看。你可以通过使用
git log
在dev(红场)中找到上次提交的sha
,然后转到你的主分支签出主控
,然后说git merge sha
红场的where sha。这在git中很常见。分叉式回购经常发生,合并到原始回购的更新中
请记住,虽然这会得到整个提交,但我不确定这是否是您想要的。如果您只需要这些提交中的一些文件,那么这将非常困难。然后你应该看看。你可以通过使用
git log
在dev(红场)中找到上次提交的sha
,然后转到你的主分支签出主控
,然后说git merge sha
红场的where sha。这在git中很常见。分叉式回购经常发生,合并到原始回购的更新中
请记住,虽然这会得到整个提交,但我不确定这是否是您想要的。如果您只需要这些提交中的一些文件,那么这将非常困难。然后你应该看看。是的,这是可能的。你需要做三件事:
- 签出原始分支:
git签出dev
- 应用所需的提交:
,git cherry pick yellow
,git cherry pick brown
git cherry pick red
- 重新基址
到dev2
:dev
,git签出dev2
git重新基址--到dev
- 签出原始分支:
git签出dev
- 应用所需的提交:
,git cherry pick yellow
,git cherry pick brown
git cherry pick red
- 重新基址
到dev2
:dev
,git签出dev2
git重新基址--到dev
- 签出原始分支:
git签出dev
- 应用所需的提交:
,git cherry pick yellow
,git cherry pick brown
git cherry pick red
- 重新基址
到dev2
:dev
,git签出dev2
git重新基址--到dev
- 签出原始分支:
git签出dev
- 应用所需的提交:
,git cherry pick yellow
,git cherry pick brown
git cherry pick red
- 重新基址
到dev2
:dev
,git签出dev2
git重新基址--到dev
是的,这是可能的。你需要做三件事:
是的,这是可能的。你需要做三件事:
是的,这是可能的。你需要做三件事: