git导航表达式

时间:2012-07-18 13:23:58

标签: git

我遇到过以下git命令:git diff ^master my_branch@{1} my_branch^mastermy_branch@{1}和命令本身意味着什么?

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

2 个答案:

答案 0 :(得分:2)

^ master意味着不是来自主

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

所以你做了my_branch的差异,但没有显示主人可以访问的任何差异。

答案 1 :(得分:2)

有关详细信息,请参阅gitrevision手册页。在您的示例中:

  1. my_branch@{1}表示之前的my_branch引用状态。
  2. ^mastergit diff的一项功能,除了master分支中已包含的内容之外的所有内容。
  3. 在结果中,您可以获得my_branch之前版本中的所有内容,但尚未在master中。