多分支设置中的git格式修补程序
1。摘要 我的最终目标是将在linux内核repo中的客户端分支上所做的一些客户端更改带到另一个linux内核存储库,因为两者都有一个公共的基本标记(例如,v4.2,客户端的分支最初是从它创建的) 为此,我尝试创建一个补丁堆栈,表示客户端分支的底部和头部之间的差异。在这第一步中,我使用的是多分支设置中的git格式修补程序,git,version-control,linux-kernel,format-patch,Git,Version Control,Linux Kernel,Format Patch,1。摘要 我的最终目标是将在linux内核repo中的客户端分支上所做的一些客户端更改带到另一个linux内核存储库,因为两者都有一个公共的基本标记(例如,v4.2,客户端的分支最初是从它创建的) 为此,我尝试创建一个补丁堆栈,表示客户端分支的底部和头部之间的差异。在这第一步中,我使用的是git格式补丁。第二步是使用gitam在第二次回购中应用这些补丁 git diff和GNUdiff对我不感兴趣,因为我不想丢失提交元数据(作者、消息等) 2。演示设置 我创建了一个简单的git提交流来举例说明这
git格式补丁
。第二步是使用gitam
在第二次回购中应用这些补丁
git diff
和GNUdiff
对我不感兴趣,因为我不想丢失提交元数据(作者、消息等)
2。演示设置
我创建了一个简单的git提交流来举例说明这个问题。以下图表描述了该系统的分支设置:
Gitg
图形-提交时间顺序:
Gitg
图-拓扑顺序:Gitk
graph:git日志--oneline--graph--decoration
:
$git状态
分支主机上的您的分支机构与origin/master是最新的。 没有要提交的内容,正在清理工作目录。
$git格式补丁库
0001-commit-2-br1.补丁
$git签出基数
头部现在是65772fd。。。提交3-master
$git apply 0001-commit-2-br1.补丁
错误:修补程序失败:文件:1 错误:文件:修补程序不适用
有效!然而,正如在摘要中所述,这不是我的解决方案git diff BASE f316460>my.patch
- 我认为在多分支设置中,
不够智能。有人遇到过同样的问题吗git格式补丁
- 有没有什么方法可以在没有git格式补丁的情况下实现相同的目标
git-rebase
命令的文档,尤其是关于git-rebase--on
。请不要重新发明轮子。@Andy Shevchenko:谢谢,我已经设法将新的本地分支重新设置为客户的远程分支。然而,在我看来,git格式补丁
问题仍然有效。你显然做了一些难以理解的事情。您有一个合并提交,这对Git来说是不寻常的(是的,合并提交是异常的,并以特定的方式处理)。我很确定,git格式补丁
创建了一些与git diff
不同的东西。您可以试着运行补丁程序-p1<0001-commit-2-br1。补丁程序,看看有什么问题。@AndyShevchenko:在我看来,提交图非常简单和常见<代码>git am,git apply
和GNU补丁
全部失败<代码>git格式修补程序即使在考虑第一次提交时也会失败(如果我在启动此线程之前知道,我会选择这种情况)。您可以尝试运行修补程序-p1<0001-commit-2-br1.patch
,看看哪里出了问题。