我有一段时间前Android内核源代码的快照,我已经添加了一些功能。 现在我有一个由制造商发布的更新版本的源代码。如何在不丢失更改的情况下更新源代码? 如果我使用
diff -Naur old/ new/ > new1.patch
“”然后按
应用补丁patch -p1 < new1.patch
我将丢失旧源中可用的修改代码和额外文件 但如果我使用
diff -Naur new/ old/ > new2.patch
它保留了我修改过的代码和额外文件,但我不知道源是否更新。这有什么解决方案吗?也许使用git rebase或合并?感谢。
答案 0 :(得分:1)
我是否理解正确:您有制造商提供的内核版本,您自己做了哪些修改?
那么你想升级你的内核版本,但仍然有你的修改?
最自然的方式是使用分支和合并。例如,您可以根据制造商的交付更新您的分支for (i = 0; i < table.rows[1].cells.length; i++) {
txt = txt + table.rows[1].cells[i].headers + "<br>";
if(txt !='') {
txt = txt + table.rows[1].cells[i].innerText + "<br>";
}
}
,并维护一个分支master
(当然,您需要一个比这更好的分支名称)到您合并上游内核更新。
my_code_branch
然后,当您的制造商进行升级时,您可以通过以下方式更新您的主人:
a---b---c---d - master (from manufacturer)
\
+---x - my_branch (your own changes)
并获得:
$ git checkout master
$ git pull origin master # or whatever your remote is called
然后将制造商的更改合并到您自己的分支中:
a---b---c---d---e - master (from manufacturer)
\
+---x - my_branch (your own changes)
得到:
$ git checkout my_branch
$ git merge master
如果您不需要本地a---b---c---d---e---+ - master
\ \
+---x---y - my_branch
分支,您也可以留在master
并直接拉取:
my_branch
请注意,您也可以执行相反的操作:$ git pull origin master # while on my_branch
中的代码,同时维护一个与制造商保持同步的分支master
。