Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从主分支中删除git提交,但将它们保留在其他分支中?_Git_Github_Version Control - Fatal编程技术网

如何从主分支中删除git提交,但将它们保留在其他分支中?

如何从主分支中删除git提交,但将它们保留在其他分支中?,git,github,version-control,Git,Github,Version Control,我在本地的主分支中创建了两个提交。我不想让他们在主人家。因此,我使用命令git checkout-b new branch从master分支到一个单独的分支,并将该分支推送到github。之后,这两个提交同时存在于新分支和主分支中。如何从master中删除这两个提交,但将它们保留在新分支中?如果尚未推送这些提交,则需要在创建分支后重置master: git checkout master git reset --hard @~2 这将从主分支中删除最后两个提交 如果这些提交不是最后两个,则需要

我在本地的主分支中创建了两个提交。我不想让他们在主人家。因此,我使用命令git checkout-b new branch从master分支到一个单独的分支,并将该分支推送到github。之后,这两个提交同时存在于
新分支
主分支
中。如何从
master
中删除这两个提交,但将它们保留在
新分支中?

如果尚未推送这些提交,则需要在创建分支后重置master:

git checkout master
git reset --hard @~2
这将从主分支中删除最后两个提交

如果这些提交不是最后两个,则需要找到要删除的最早提交的引用(比如SHA1“
X
”),并执行交互式重新基址

git checkout master
git rebase X~
您将能够从主分支删除这两个提交。
但您可能必须重新设置新创建分支的基础,以便将其基础更改为新的主标头:

git checkout new-branch
git rebase --onto master new-branch~2 new-branch

如果你已经推过主,但是你独自一人工作在这个回购上,你也可以考虑这个方法(和<代码> Git Purth-Word你的主分支)