如何在不丢失添加代码的情况下将内核源更新到新版本?

时间:2015-06-23 02:40:30

标签: android git diff

我有一段时间前Android内核源代码的快照,我已经添加了一些功能。 现在我有一个由制造商发布的更新版本的源代码。如何在不丢失更改的情况下更新源代码? 如果我使用

diff -Naur old/ new/ > new1.patch

“”然后按

应用补丁
patch -p1 < new1.patch

我将丢失旧源中可用的修改代码和额外文件 但如果我使用

diff -Naur new/ old/ > new2.patch

它保留了我修改过的代码和额外文件,但我不知道源是否更新。这有什么解决方案吗?也许使用git rebase或合并?感谢。

1 个答案:

答案 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