为什么我看到使用'git show'的提交,但我没有在'git log'中看到它?

时间:2012-12-02 08:05:42

标签: git

我可以使用'git show 9a6fe03'

查看提交

但是当我使用'git log'并搜索'9a6fe03'时,我什么都没看到。

当我'git grep 9a6fe03'时,它也没有返回任何内容。

你能告诉我为什么吗?

谢谢。

更新:我在使用时找到了提交 $ git branch --all --contains 9a6fe03

git branch --all --contains 956ae03

  remotes/my-git/branch1
  remotes/my-git/branch2
  remotes/my-git/branch3

但是当我做的时候我什么都没看到

git branch --contain 9a6fe03

我一无所获。

我的问题是我现在在哪个分支? 当我做'

 $ git branch
* (no branch)

我想我在一个名为'独立头'的舞台上 但是当我做'repo sync'时,我得到其他人的承诺?

1 个答案:

答案 0 :(得分:1)

多个问题,多个答案。 :)

<强> 1。 log vs. show vs. grep

  • git show 9a6fe03会向您显示单个提交。 (包括变更。)
  • git log 9a6fe03还会向您显示该提交及其所有祖先。
  • git log(没有任何参数)会显示当前提交(HEAD)及其所有祖先。

如果HEAD不是您提交的祖先,则不会显示。

git grep完全不同。它会查看给定文本的文件。 由于可能没有文件包含字符串“9a6fe03”,因此您将无法输出。

<强> 2。

上的提交是什么分支

还有两种不同的分支:本地分支和远程分支。   - git branch只会显示本地分支机构   - git branch -r仅显示远程分支   - git branch -a将显示本地和远程分支

在您的情况下,提交仅包含在远程分支中。因此,您只能在指定-r-a(= --all)时看到它。

第3。我在哪个分支

因为你现在处于“没有分支”(也就是独立的HEAD),所以你正式开始,好吧,没有分支。 ;)

您当前可能会看到代码的任何(可能很旧)版本,或者甚至恰好位于与分支的HEAD相对应的提交中。

你可以尝试git log --decorate --graph - 如果有的话,那将在你的提交旁边显示任何类型的引用(如分支,标签等)。