首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么git签出SHA返回不同的SHA?

为什么git签出SHA返回不同的SHA?
EN

Stack Overflow用户
提问于 2014-02-26 05:04:49
回答 1查看 628关注 0票数 1

我有一个分叉的https://github.com/carrierwaveuploader/carrierwave回购,最近尝试签出一个特定的SHA,但被指向一个不同的SHA。这就好像两个不同的SHAs实际上指向同一个位置,这是不可能发生的!

下面是复制/粘贴bash输出:

代码语言:javascript
复制
$ git checkout 16bafdd41cb993f65919fcf12fc03ff6c9246a33
Note: checking out '16bafdd41cb993f65919fcf12fc03ff6c9246a33'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 396f538... Merge pull request #1160 from pjg/patch-1

$ git status
# Not currently on any branch.
nothing to commit, working directory clean

$ git log
commit 396f5384c67f8a17c153c15da0f1d06bc1f116e4
...

$ git checkout 396f5384c67f8a17c153c15da0f1d06bc1f116e4
HEAD is now at 396f538... Merge pull request #1160 from pjg/patch-1

$ git checkout 16bafdd41cb993f65919fcf12fc03ff6c9246a33
HEAD is now at 396f538... Merge pull request #1160 from pjg/patch-1

回答迈克尔·安德森:

代码语言:javascript
复制
$ git cat-file -t 16baf
tag

$ git cat-file -t 396f5
commit
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-26 05:28:02

你回答了你的问题。

您只能签出提交。由于标记是4个git对象之一(其他是blob、tree和commit),所以它们会得到一个SHA。但它们仍然是提交的指针。你只能检查一次承诺。没有其他对象可以签出。

当您尝试签出标记或分支时,这些标记或分支所指向的提交将被签出。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22032250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档