簡體   English   中英

如何從分支 git-commit 到分離的 HEAD?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM