Cherrypick 从一个标签开始的远程分支的所有提交
Cherrypick all commits from remote branch starting at a tag
我正在做一个依赖游戏的旧项目,但是游戏更新了很多,我需要将我的项目更新到最新版本。我试过简单地合并两个 Repos,但是变化太多,太混乱了。
我想逐步挑选每个提交(几百个)以确保不会发生不需要的更改,并可能在冲突时添加一些更改。
所以原版回购标签看起来像:
0.7.0
0.7.1
...
我如何从每个标签中挑选每个提交?
来自https://git-scm.com/docs/git-cherry-pick
git rev-list --reverse master -- README | git cherry-pick -n --stdin
如果将 rev-list
更改为
git rev-list --reverse 0.7.1 ^0.7.0
它为您提供 0.7.1 之前的所有提交,不包括 0.7.0 之前的所有提交,因此基本上所有 0.7.0 和 0.7.1 之间的提交。请参阅此处 ^
的用法:https://git-scm.com/docs/git-rev-list#_description
然后您可以将这些提交通过管道传输到 cherry-pick 以发挥它的魔力。
我正在做一个依赖游戏的旧项目,但是游戏更新了很多,我需要将我的项目更新到最新版本。我试过简单地合并两个 Repos,但是变化太多,太混乱了。
我想逐步挑选每个提交(几百个)以确保不会发生不需要的更改,并可能在冲突时添加一些更改。
所以原版回购标签看起来像:
0.7.0
0.7.1
...
我如何从每个标签中挑选每个提交?
来自https://git-scm.com/docs/git-cherry-pick
git rev-list --reverse master -- README | git cherry-pick -n --stdin
如果将 rev-list
更改为
git rev-list --reverse 0.7.1 ^0.7.0
它为您提供 0.7.1 之前的所有提交,不包括 0.7.0 之前的所有提交,因此基本上所有 0.7.0 和 0.7.1 之间的提交。请参阅此处 ^
的用法:https://git-scm.com/docs/git-rev-list#_description
然后您可以将这些提交通过管道传输到 cherry-pick 以发挥它的魔力。