澄清使用git返回一些提交

时间:2012-03-02 07:43:05

标签: git commit git-checkout

任何人都可以为我澄清一些事情。如果我使用

返回先前的提交
git checkout HASH
  1. 正在运行git branch会显示(no branch)。这是什么意思?
  2. 如果我编辑文件然后提交。它会创建一个新分支还是只更新整个分支,所以当我回到当前提交时,文件也会更新?
  3. 与#2相关,是检查先前提交的目的,以便您可以从中创建分支或更多内容?我猜的更多,但我看不到它,因为我的项目并不复杂。

2 个答案:

答案 0 :(得分:1)

  1. 这意味着您有一个分离的HEAD ref指向您签出的提交。这意味着任何提交的提交都不会与分支关联,只有在将HEAD从分离的树上移开后才能通过提交SHA访问。

  2. 未创建或更新分支。您将创建一个从签出提交开始的提交树,但是在您告诉git使该树成为分支的一部分之前,它不是任何分支的一部分。

  3. 它旨在对您可能不希望成为存储库中任何分支的一部分的提交进行操作。这可能是为了丢掉工作。如果您愿意,可以随时从之前的提交中创建一个新分支。

  4. git-checkout man page为这些问题提供了很好的解释,并澄清了您对以各种方式使用结帐的理解。

答案 1 :(得分:0)

  1. 表示您处于DETACHED HEAD模式
  2. 不,你的提交没有被任何分支引用:没有任何分支的HEAD引用你的新提交(因此是“分离头”部分)。
    另请参阅“HEAD and ORIG_HEAD in Git
  3. git checkout -b aNewBranch足以创建一个新分支,它将引用您当前的提交(不再是“分离的HEAD”)。
  4. enter image description here