返回到SourceTree中的上一个提交

Nik*_*har 4 git commit bitbucket revert git-checkout

我是Git的新手,我试图恢复到SourceTree中的先前提交。我右键单击要还原的提交,然后单击“签出”。它给了我一个迅速的提示,说我的工作副本将变成一个独立的头。这是什么意思,这是我应避免的事情?

LuF*_*FFy 5

正如Per Git-Tower的文章:Git中的“分离头”是什么?

了解“结帐”的工作原理

使用“ git checkout”命令,可以确定要处理的项目的修订版。然后,Git将该修订的所有文件都放在您的工作副本文件夹中。

通常,您使用分支名称与“ git checkout”通信

$ git checkout development
Run Code Online (Sandbox Code Playgroud)

但是,您也可以提供特定提交的SHA1哈希值:

$ git checkout 56a4e5c08
Note: checking out '56a4e5c08'.

You are in 'detached HEAD' state...
Run Code Online (Sandbox Code Playgroud)

这种确切的状态-当签出特定的提交而不是分支时-称为分离的HEAD

在此处输入图片说明

HEAD分离的问题

Git中的HEAD指针确定您当前的工作修订版(并因此确定放置在项目工作目录中的文件)。通常,当签出正确的分支名称时,Git在创建新提交时会自动移动HEAD指针。您将自动进入所选分支的最新提交。

当您选择检出提交哈希时,Git不会为您执行此操作。结果是,当您进行更改并提交更改时,这些更改不属于任何分支。这意味着一旦您签出其他修订版或分支,它们就很容易丢失:没有记录在分支的上下文中,您将无法轻松访问该状态(除非您有出色的记忆力并且可以记住的提交哈希)新提交...)。

摘要: 从SourceTree,请检出到特定分支,而不是检出到特定提交。