[英]How to git-commit from a branch to a detached HEAD?
我的ref HEAD
指向分支foo
,它指向提交123abc
; 我有一些分階段的工作。
如何git commit
該工作,將HEAD
移動到新創建的提交,但不推進分支?
(因此:將foo
指向123abc
)
是否可以使用單個git
命令來完成?
只需分離,然后提交:
git checkout --detach
git commit -m "Commit as usual"
如果HEAD
直接指向提交123abc
,它已經在分離的 HEAD state 而不是foo
上。 git commit
將創建一個新提交並將HEAD
移動到新提交,而foo
保持不動。
如果HEAD
指向refs/heads/foo
並且refs/heads/foo
指向123abc
,您可以運行git checkout 123abc
然后進行提交。
您可以只提交然后進行重置:
# from foo branch
git commit -m 'your work here'
git reset --soft HEAD~1
這會將 HEAD 指針移回一個提交到123abc
,但也會暫存該提交中的所有工作。
還有其他類型的重置(混合,硬),它們是上述的變體。 在不知道您的最終目標的情況下,不清楚您應該使用哪種重置方式。 不過,一般來說,如果您想重寫之前的 HEAD 提交,則將 HEAD 移回一個提交是您會做的事情。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.