【问题标题】:How to `git log` a tree-ish from another branch?如何从另一个分支“git log”树状结构?
【发布时间】:2013-09-16 14:36:09
【问题描述】:

假设我有一个带有分支 A 和分支 B 的 Git 存储库。
分支B 当前已签出(即.git/HEAD 包含refs/heads/B)。
现在,不检查分支A,如何在分支A 中查看path/file 的历史记录(日志)?

git help rev-parse 之后,我尝试使用git log A:path/file,但这似乎不起作用(没有输出)。为什么?

【问题讨论】:

  • A:path/file 是特定 树或 blob 对象的名称(标识符)的快捷方式。要让 git log 跟踪历史记录,您需要从 commit-ish 开始。
  • @Jakub,好的,但是,git log path/file 是如何工作的?
  • git log path/filegit log HEAD -- path/file

标签: git git-log


【解决方案1】:

试试这个(不带尖括号):

git log <branch> -- <path/to/file>

【讨论】:

  • 很好,这行得通。现在,用管道术语解释,有什么区别?
  • 我不熟悉<branch>:<path> 语法。我刚离开man git-log,它提供git log [<options>] [<revision range>] [[--] <path>...]。同样,错误输入许多命令会从 git 产生此警告:Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'
  • stackoverflow.com/questions/18085344/… 是否有助于回答您的问题?
  • 看起来冒号 (:) 用于分隔两个不同的树(例如,远程分支和本地分支),这在此处不会发生。您只检查一个分支,并且要将分支与路径分开,您需要使用相当标准的--。这提供了一些解释:git-scm.com/book/ch9-5.html
  • @ulidtko:我使用的助记符是<tree-ish>:<path>,即one表达式是关于one对象,即树(目录)或文件, 两者都没有历史,所以对git show A:path/file 有好处。 git log <commit> -- <path>两个 表达式:从 <commit> 开始的历史记录仅限于触及 <path> 的提交。 HTH
猜你喜欢
  • 1970-01-01
  • 2012-10-22
  • 1970-01-01
  • 2021-11-06
  • 2021-11-05
  • 2022-10-25
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
相关资源
最近更新 更多