如何从分支向独立的HEAD提交?

问题描述 投票:0回答:3

My ref HEAD指向分支foo,它指向提交123abc;而且我有一些上演的工作。

如何git commit起作用,将HEAD移动到新创建的提交,但是不推进分支

(因此:将foo指向123abc

是否可以使用单个git命令来完成?

git git-branch git-commit git-detached-head git-dangling
3个回答
1
投票

简单地分离,然后提交:

git checkout --detach
git commit -m "Commit as usual"

1
投票

如果HEAD直接指向提交123abc,则它已经处于分离的HEAD状态,而不是在foo上。 git commit将创建一个新的提交,并将HEAD移至新的提交,而foo保持不变。

如果HEAD指向refs/heads/foorefs/heads/foo指向123abc,则可以运行git checkout 123abc,然后进行提交。


0
投票

您可以先提交,然后进行重置:

# from foo branch
git commit -m 'your work here'
git reset --soft HEAD~1

这会将HEAD指针移回一个提交到123abc,但也会分阶段执行该提交中的所有工作。

还有其他类型的重置(混合重置,硬重置),它们是上述内容的变体。在不知道最终目标的情况下,不清楚应该使用哪种重置。但是,总的来说,如果要重写先前的HEAD提交,则可以将HEAD移回一个提交。

© www.soinside.com 2019 - 2024. All rights reserved.