如何将基于某分支的修改移动到基于master的新分支上

可以使用 cherry-pick 来解决此问题,假设将基于某功能分支(feature-branch)的修改移动到基于最新的 master 的新分支(feature2-branch)上 :

  1. 确保你的本地仓库是最新的。首先切换到 master 分支并从远程拉取最新的更改:
git checkout master
git pull origin master
  1. 创建一个新的分支,这个新分支将基于 master 并且会包含来自 feature-branch 的修改。你可以给这个新分支起一个有意义的名字,例如 feature2-branch
git checkout -b feature2-branch
  1. 查看 feature-branch 的提交历史记录,找到你想要移动到 master 的特定提交的哈希值。你可以通过以下命令查看提交历史:
git log feature-branch

这会显示一系列提交信息,包括每个提交的哈希值。

  1. 使用 git cherry-pick 命令来选取并应用特定的提交到新创建的分支 feature2-branch。用你之前找到的提交哈希替换 <commit-hash>
git cherry-pick <commit-hash>

如果你需要选取多个连续的提交,可以使用范围选择:

git cherry-pick <start-commit-hash>^..<end-commit-hash>
  1. 如果在 cherry-pick 过程中遇到任何合并冲突,解决这些冲突后继续 cherry-pick 过程。解决冲突后,标记文件为已解决状态,并完成 cherry-pick
git add <resolved-file>
git cherry-pick --continue
  1. 一旦所有需要的提交都已被成功地挑选并应用到新分支上,你可以推送到远程仓库:
git push --set-upstream origin feature2-branch

这样,你就成功地将 feature-branch 上的特定修改移动到了基于 master 的新分支 feature2-branch 上。如果之后需要对这些修改进行进一步的工作或审查,可以在新分支上进行。