Git:将最后的几个提交移动到一个新分支,然后为它们创建一个补丁
我已经做了一些提交,现在我希望它们(比如从分支中的一些提交)将它们移动到新的分支中,即:Git:将最后的几个提交移动到一个新分支,然后为它们创建一个补丁,git,branch,patch,Git,Branch,Patch,我已经做了一些提交,现在我希望它们(比如从分支中的一些提交)将它们移动到新的分支中,即: master - O1-O2-O3-X-C1-C2-C3 成为 master - O1-O2-O3-X \ new_branch - C1-C2-C3 之后,我需要为所提到的提交(C1、C2、C3)制作补丁,以便我的一位朋友能够在他们的树上应用它们 关于第一部分,我想我应该做一些类似的事情: 为x->C3创建修补程序 重置为X 创建分支 应用补丁 尽管他们建
master - O1-O2-O3-X-C1-C2-C3
成为
master - O1-O2-O3-X
\ new_branch - C1-C2-C3
之后,我需要为所提到的提交(C1、C2、C3)制作补丁,以便我的一位朋友能够在他们的树上应用它们
关于第一部分,我想我应该做一些类似的事情:
git-branch-new\u-branch;git重置——硬X;git签出新分支机构
。reset——硬删除我的提交吗
我对git不太在行,在没有指导的情况下我无法完成这一切。谢谢 Noreset--hard
不会删除您的提交,因为它们仍然会被“new\u分支
”分支引用。
(这意味着,通过签出“new\u branch
”,您将恢复并再次看到这些提交)
但它会删除工作树中任何未跟踪的更改,所以在键入该命令之前,请确保没有任何正在进行的工作
您可以在“”中看到该命令序列的更详细说明
要完成的注释,如果git重置删除或擦除了任何提交,您仍然可以使用git reflog
获取这些提交
见:
- “”
- “”
建议的序列工作正常,因为新的分支现在指向提交并防止它们被垃圾收集。不过,更一般地说,如果您对git中的某些内容不确定,请创建一个测试存储库,启动gitk并进行尝试。最坏的情况是——你用软管连接你的测试库(大不了)。另一件值得一提的事情是,您可以使用git clone-mirror镜像当前的存储库。这给了你一个备份,以防你搞砸了什么。只要在镜像中不时运行git remote update,一切都会好起来:)