0

我遇到了以下 git 命令:git diff ^master my_branch@{1} my_branch. ^master,my_branch@{1}和命令本身是什么意思?

我找了人,git diff但没有找到任何具有三个分支的变体。

4

2 回答 2

2

^master 表示不是来自主人

一个 ref 后缀为 @ 并带有一个包含在大括号对中的序数规范(例如 {1}、{15}),指定了该 ref 的第 n 个先前值。例如,master@{1} 是 master 的直接优先值,而 master@{5} 是 master 的第 5 个优先值。此后缀只能紧跟在 ref 名称之后使用,并且 ref 必须具有现有日志 ($GIT_DIR/logs/)。

所以你做了一个 my_branch 的差异,但不显示任何 master 可以访问的差异。

于 2012-07-18T13:36:36.080 回答
2

有关更多信息,请参见gitrevision手册页。在您的示例中:

  1. my_branch@{1}表示先前的my_branch参考状态。
  2. ^mastergit diff除了已经存在于master分支中的所有内容之外的所有内容。

结果,您将获得以前版本中my_branchmaster尚未出现的所有内容。

于 2012-07-18T13:39:10.323 回答