将一个提交保存到另一个分支,而不合并分支



我知道git的择优选择,但它似乎实际上是将提交重新定位到引入合并冲突的其他分支上。是否有任何方法可以将提交粘贴到另一个分支的历史上,而无需对提交或分支头进行进一步修改?对于上下文,我想将我的项目的工作版本和完成版本(已经在目标分支上)保存到同一个分支上,但是两者都有不同的文件内容,并且工作版本有额外的文件,可以使用git cherry-pick删除。

不直接,这是设计的,因为git是一个Merkle结构;未来的提交依赖于过去的提交

您可以使用git diff branch1..branch2创建一个完整的diff来生成单个补丁,然后使用git apply来应用它(有效地生成一个提交,使branch1直接成为branch2)

# git pull -a  # fetch upstream (maybe undesirable)
git diff branch_other..branch_src > ../output.patch
# inspect output
git apply ../output.patch

最新更新