Git 从分支中删除提交并将其放在单独的分支上

Git 从分支中删除提交并将其放在单独的分支上,git,branch,Git,Branch,我的项目只有一个分支master。假设我执行了四次提交A,B,C和D。现在我才意识到,D是一种太过实验性的东西,因此它不应该在master(尚未)上,而是在它自己的一个独立分支上,比如说实验性的 我如何: 将D放在它自己的分支上 作为master返回C并在此分支上执行新提交 (注意:我不想只是撤销提交)首先,在D提交上创建实验性分支。此时,它将与master相同 执行git签出主控程序 执行git重置--hard HEAD~1。(这使您可以提交C) 现在执行一个推送-f(从主分支。这将推送C

我的项目只有一个分支
master
。假设我执行了四次提交
A
B
C
D
。现在我才意识到,
D
是一种太过实验性的东西,因此它不应该在
master
(尚未)上,而是在它自己的一个独立分支上,比如说
实验性的

我如何:

  • D
    放在它自己的分支上
  • 作为
    master
    返回
    C
    并在此分支上执行新提交

(注意:我不想只是撤销提交)

首先,在
D
提交上创建
实验性
分支。此时,它将与
master
相同

执行
git签出主控程序

执行git重置--hard HEAD~1
。(这使您可以提交
C

现在执行一个
推送-f
(从主分支。这将推送
C
,作为
master
上的最后一次提交)


这应该可以解决问题。

首先,在
D
commit上创建
experimental
分支。此时,它将与
master
相同

执行
git签出主控程序

执行git重置--hard HEAD~1
。(这使您可以提交
C

现在执行一个
推送-f
(从主分支。这将推送
C
,作为
master
上的最后一次提交)

这应该可以解决问题。

首先,您需要从
master
获取
experimental
分支:

mureinik@computer ~/src/git/myproject [master] $ git branch experimental
然后,您可以将
master
分支到后面的一个提交:

mureinik@computer ~/src/git/myproject [master] $ git reset HEAD~ --hard
首先,您需要从
master
中选择
实验
分支:

mureinik@computer ~/src/git/myproject [master] $ git branch experimental
然后,您可以将
master
分支到后面的一个提交:

mureinik@computer ~/src/git/myproject [master] $ git reset HEAD~ --hard

我不确定您是否可以移动提交,但您可以切换分支,然后再次提交。我不确定您是否可以移动提交,但您可以切换分支,然后再次提交。