回到SourceTree中的先前提交

时间:2017-03-01 05:14:19

标签: git bitbucket commit git-checkout revert

我是Git的新手,我试图恢复到SourceTree中的先前提交。我右键单击了我要恢复的提交,然后点击结帐。它给了我一个提示,说我的工作副本将成为一个独立的头。这是什么意思,这是我应该避免的?

3 个答案:

答案 0 :(得分:4)

根据Per Git-Tower的文章:What's a "detached HEAD" in Git?

  

了解"结帐"作品

     

使用" git checkout"命令,您确定您的哪个版本   你想要工作的项目。然后Git放置了所有的修订版   工作副本文件夹中的文件。

     

通常,您使用分支名称与" git checkout"

进行通信
$ git checkout development
     

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

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

You are in 'detached HEAD' state...
     

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

     

enter image description here

     

分离的HEAD的问题

     

Git中的HEAD指针确定您当前的工作版本(和   从而放置在项目中的文件正常工作   目录)。通常,在检查正确的分支名称时,Git   在创建新项时自动移动HEAD指针   承诺。您将自动进行所选的最新提交   分支。

     

当您选择查看提交哈希时,Git不会这样做   为了你。结果是当你进行更改并提交时   他们,这些变化不属于任何分支。这意味着他们可以   一旦你看到一个不同的版本或分支,很容易迷路:不   在分支的背景下记录,你缺乏可能性   轻松访问该状态(除非你有一个辉煌的记忆,可以   记住新提交的提交哈希...)。

摘要: 从SourceTree,请结账到特定的分支,而不是检查特定提交。

答案 1 :(得分:0)

这个问题似乎与git并不完全相关,但是特定于您正在使用的git客户端/提供程序(我怀疑是bitbucket)。

我建议您使用命令行客户端,而不是Web UI来更好地学习git。

在分离头状态中,无论您所做的任何更改(和提交)都与提交树分离,您还需要额外的工作才能将该提交放回提交树。通常我们不会在分离头状态中进行更改,它用于重新安排提交树。但值得在超然状态下进行试验。

答案 2 :(得分:0)

2020年12月9日。

我正在使用 Sourcetree 。如果您想进行上一次提交,则只需双击上一次提交即可。之后,如果需要,您可以创建一个新分支并与旧分支合并。

enter image description here

@canerkaseler