带远程标签的Git diff

时间:2013-10-29 15:30:03

标签: git tags diff

我即将合并来自远程分支(非原始分支)的更改,更具体地说,来自给定标记。

然后有两个遥控器:

  1. origin
  2. proposal
  3. proposal遥控器上,存在分支名称idea,标记为tagged_idea

    我的想法是,我想查看tagged_idea和我当前的HEAD之间的传入更改。我怎样才能做到这一点?

    我试过像git diff .../proposal/tags/tagged_idea这样的东西,但效果并不好。有什么想法吗?

    换句话说,我想看到的是合并的结果,甚至在我的分支中进行。就像我执行了拉git pull proposal tags/tagged_idea但没有实际进行更改一样。

3 个答案:

答案 0 :(得分:13)

大多数git命令仅在本地工作,尤其是git diffgit merge之类的内容。

您的本地存储库可以有多个遥控器,但为了解决这些问题,您必须首先将本地存储库与您的遥控器同步:

 git fetch --all

虽然这将下载所有更改集,但它不会将它们应用于您当前的分支,除非当前分支跟踪其中一个遥控器。

下载远程变更集和标记后,您只需运行以下内容:

git diff tagged_idea

...并查看当前HEAD与标记tagged_idea之间的差异,无论后者位于何处。

答案 1 :(得分:1)

我使用git ls-remote --tags proposal |grep tagged_idea获取修订哈希,然后使用哈希值git diff

答案 2 :(得分:0)

如果您只是在寻找命令,请不要使用它,因为此解决方案的主要目的是向您介绍一种解决方案!

为了使生活更轻松-我编写了一个脚本git-cheat-sheet,其中包含一些有用的命令,包括以下命令:

./ git_commands.sh -diff_tag