Nik*_*har 4 git commit bitbucket revert git-checkout
我是Git的新手,我试图恢复到SourceTree中的先前提交。我右键单击要还原的提交,然后单击“签出”。它给了我一个迅速的提示,说我的工作副本将变成一个独立的头。这是什么意思,这是我应避免的事情?
正如Per Git-Tower的文章:Git中的“分离头”是什么?
了解“结帐”的工作原理
使用“ git checkout”命令,可以确定要处理的项目的修订版。然后,Git将该修订的所有文件都放在您的工作副本文件夹中。
通常,您使用分支名称与“ git checkout”通信
Run Code Online (Sandbox Code Playgroud)$ git checkout development但是,您也可以提供特定提交的SHA1哈希值:
Run Code Online (Sandbox Code Playgroud)$ git checkout 56a4e5c08 Note: checking out '56a4e5c08'. You are in 'detached HEAD' state...这种确切的状态-当签出特定的提交而不是分支时-称为分离的HEAD。
HEAD分离的问题
Git中的HEAD指针确定您当前的工作修订版(并因此确定放置在项目工作目录中的文件)。通常,当签出正确的分支名称时,Git在创建新提交时会自动移动HEAD指针。您将自动进入所选分支的最新提交。
当您选择检出提交哈希时,Git不会为您执行此操作。结果是,当您进行更改并提交更改时,这些更改不属于任何分支。这意味着一旦您签出其他修订版或分支,它们就很容易丢失:没有记录在分支的上下文中,您将无法轻松访问该状态(除非您有出色的记忆力并且可以记住的提交哈希)新提交...)。
摘要: 从SourceTree,请检出到特定分支,而不是检出到特定提交。