将git历史记录中的更改应用到不同的软件版本

将git历史记录中的更改应用到不同的软件版本,git,revision-history,Git,Revision History,比如说,我下载了一个1.0.10版本的看板Kanboard.net,把它放在我的git存储库中,然后对它做了一些修改,以我想要的方式对它进行定制。但在那之后,发布了看板的更新版1.0.11。现在我想知道是否可以应用所有更改?我做了一个1.0.11版本的普通版本 我对git完全陌生,所以我真的不知道该去哪里找。告诉我这样的事情是否可能,如果可能的话,告诉我正确的方向,剩下的我可以自己学习。如果你在一个单独的分支中进行更改,这类事情是最简单的。如果是这种情况,您可以使用git rebase操作将更改

比如说,我下载了一个1.0.10版本的看板Kanboard.net,把它放在我的git存储库中,然后对它做了一些修改,以我想要的方式对它进行定制。但在那之后,发布了看板的更新版1.0.11。现在我想知道是否可以应用所有更改?我做了一个1.0.11版本的普通版本


我对git完全陌生,所以我真的不知道该去哪里找。告诉我这样的事情是否可能,如果可能的话,告诉我正确的方向,剩下的我可以自己学习。

如果你在一个单独的分支中进行更改,这类事情是最简单的。如果是这种情况,您可以使用git rebase操作将更改从一个版本移动到另一个版本。也就是说,假设您从版本1.0.10的存储库开始,并创建一个分支来处理一些错误修复/功能:

$ git status
On branch master
[...]
$ git checkout -b myfeature
现在你做了一些改变。稍后,上游代码的1.0.11版可用,因此您首先更新存储库:

$ git checkout master
$ git pull
现在,您可以在更新的主分支上重新设置更改的基础:

这将在更新的主分支上重播myfeature分支中的更改。此时您可能需要解决一些合并冲突,但是


此工作流程的一个关键部分是将本地工作与上游工作分开。

如果您只有香草1.0.11,这很难,因为您没有共享的基线。一种选择是在原始1.0.10存储库中从普通代码(即基线代码)中获取一个分支,在进行任何更改之前,将1.0.11代码放入其中并提交。然后,您的1.0.11和1.0.10有一个共同的祖先。从那里,您可以以正常方式将分支合并到此分支。一旦完成了,你就有了1.0.11+你的东西,你就可以把这些东西复制到一个普通的1.0.11上,然后提交
$ git checkout myfeature
$ git rebase master