linux - 从 git 中查找内核源代码 tgz 中应用的补丁

标签 linux git version-control kernel

我在 tgz 存档中有一个带有补丁的内核源代码。大多数补丁在内核 git 中都是已知的,但我不知道哪些已被集成。我如何知道源代码应用了哪些补丁?

最佳答案

似乎您正在将源代码复制到 git 存储库的外部(我们称其为应用程序的生产环境)。然后你想检查 git repo 中的最新提交是否应用于你的生产环境(在 git repo 之外)。

如果您遇到以上情况,直接回答是否定的。但是您可以将生产环境更改为 git 存储库中的一个分支

对于git repo,我们通常使用branches来独立地并发地工作。如果我们需要在分支之间应用更改,还要同步分支/工作/环境。对于您的情况,您可以在 git 存储库中的两个分支上工作:

  • master 分支:作为您的 git 存储库中的生产环境。
  • develop 分支:在此分支上开发新的变更/特性或修复bug,当您准备好将变更应用到master分支(生产环境)时,只需 merge develop 分支到 master 分支。

工作流程的步骤如下:

假设,你现在只在 master 分支上工作,提交历史如下:

…---A---B---C  master

现在你可以通过git checkout -b develop创建一个develop分支,然后作为这个分支工作(比如提交DEF 在下图中),提交历史如下:

…---A---B---C  master
             \
              D---E---F   develop

当你想将 develop 分支的提交应用到 master 分支(生产环境)时,使用命令:

git checkout master
git merge develop

并且提交历史将是(master 分支和develop 分支都指向最新的提交F):

…---A---B---C---D---E---F  master, develop

关于更详细的分支模型,您也可以引用A successful Git branching model .

关于linux - 从 git 中查找内核源代码 tgz 中应用的补丁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47782799/

相关文章:

linux - 如何从 Ghostscript 更新 CID 字体

git revert HEAD~2 产生冲突且没有适当的解决方案

git - 将 git 分支转换为 git 标签

Git、SVN 和 Mercurial 最好的 SCM 是什么?

cvs - 如何在TestComplete中使用CVS?

c++ - 将日期、时间和 UTC 偏移值转换为自 unix 纪元以来的毫秒数?

java - jstatd.all.policy放置在哪里

linux - 如何在 Linux 上监控 Hyperion 服务

ruby-on-rails - Git 的安装位置有什么不同吗

java - Android Studio 确定 GitHub 的凭据无效