GIT显示不属于分支的提交ID的信息

时间:2017-07-10 10:42:08

标签: git

我一直在GIT工作,我有一个基本的怀疑

a)我在分支'master'上创建了三个文本文件'a.txt,b.txt和c.txt',添加并提交了文件

b)我从'master'(Commit#666a663)

创建了一个新的分支'temp'

c)我修改了'master'中的文件'c.txt',添加并提交了它(Commit#5cbbf09)

ca18:TEST_GIT sathishkumark$ git branch
* master
  temp

ca18:TEST_GIT sathishkumark$ git log --pretty=oneline
5cbbf09cf619fa5462240b8afe3af4274e0d7dcf File revised
666a6634e938e7aa5e042e1b443ef817a98b8232 Initial version

现在,我使用'git checkout temp'

切换到分支'temp'

当我从分支'temp'输入'git show 5cbbf09'时,git显示有关提交ID的信息#5cbbf09

问题

这里的问题是当我在分支'temp'时'git显示'5cbbf09'的信息'。

提交ID#5cbbf09属于分支'master'而不属于分支'temp'。

我希望git不显示提交信息,因为提交不属于分支'temp'

请澄清

GIT是否提交未标记到分支机构? (或)换句话说,“分支和提交”之间的关系是什么。

1 个答案:

答案 0 :(得分:2)

这里没有太多要澄清的,你问的是具体的提交,所以GIT会显示有关它的信息。你所在的分支有什么关系?在这种情况下,你的期望是错误的。

如果您只想在当前分支上进行提交,则默认情况下,没有参数的简单git log将仅从分支的开头提交提交,而不提供其他分支。

然后您可以使用其他标志进行过滤,但根据您的直接请求,提供特定提交(或分支)将强制GIT显示它们。如果您不想查看有关提交的信息,为什么要引用它?基本上你想要一个忽略你的程序......

回答你的最后一个问题:没有。逻辑是颠倒的。实际上,分支只是提交的“指针”,仅此而已 - 其他版本控制工具具有不同的分支概念,因此这是一个很好的注意事项。您可以移动此指针,但这不会影响一般情况下的提交。请注意,尽管最后没有分支的提交链有点像'泄露的内存',如果你遇到那种情况,git会清理它。

但是日志的行为会有所不同:如果你git log <branch>,那么在分支指向的提交之前,你会看到一个记录,而不管你当前的分支,而不仅仅是指向的提交。

除了可以与特定提交关联(身份明智)的ID之外,唯一的事情是tag(这不是分支!相反,提交的命名,或者如果你的别名will),但就是这样。