git:如何查看对单个分支的提交

git:如何查看对单个分支的提交,git,Git,一位同事从master创建了一个本地分支(“branchA”),做了一些工作,推送它,合并到master中,再做一些工作,然后再次推送它。同时,其他同事也在其他分支上工作,并将它们合并为master 现在我需要拉branchA来复习。所以我做了一个git pull和git checkout-b branchA origin/branchA,这很好。但是所有命令(git-diff/log/show)都显示了在repo中所有分支上进行的提交 如何查看branchA的所有提交与创建branchA的ma

一位同事从master创建了一个本地分支(“branchA”),做了一些工作,推送它,合并到master中,再做一些工作,然后再次推送它。同时,其他同事也在其他分支上工作,并将它们合并为master

现在我需要拉branchA来复习。所以我做了一个
git pull
git checkout-b branchA origin/branchA
,这很好。但是所有命令(git-diff/log/show)都显示了在repo中所有分支上进行的提交

如何查看branchA的所有提交与创建branchA的master版本之间的差异

另外,我如何才能针对当前的主控头查看branchA的git diff,而只查看branchA内更改的文件?

您可以使用 git log--branchs=mybranch


这将显示登录特定分支机构的日志。以下内容适用于您的第二个问题,即如何查找分支机构与本地当前版本的主文件之间的差异。您希望在
git log
中使用“双点”语法,以查看
branchA
中未在
master
中的所有提交。也就是说:

git log master..branchA
根据
git日志
手册页:

SYNOPSIS
   git log [<options>] [<since>..<until>] [[--] <path>...]
   ...
   <since>..<until>
   Show only commits between the named two commits. When either <since> or <until> is omitted, it defaults to HEAD, i.e. the tip of the current branch.
   For a more complete list of ways to spell <since> and <until>, see gitrevisions(7).
最后,您可以对
git diff
使用完全相同的语法,即
git diff master..branchA
git diff master..branchA

另外,如果您签出了
branchA
,甚至不需要将其指定为
。如果未指定,Git将假定
HEAD
,因此这两组命令是等效的:

git checkout branchA
git log master..


Git提交不保留关于“提交到哪个分支”的信息。他们只给你一分,你可以从树上走回来。一旦发生合并,您就无法从合并提交中确定哪个父级来自您开始的分支。对此进行了详细讨论

这是我的理解。如果我错了,我希望被纠正

  • git diff master..brnachA
    :将比较master负责人和branchA之间所有修改的文件
  • git diff master…brnachA
    :将branchA与创建它的master版本进行比较
  • 仅供参考:
    git diff
    将在命令行中生成输出。如果要在某些可视化工具中查看输出,请使用
    git difftool


    您也可以将所有的
    git diff
    参数和选项传递给
    git difftool

    git log HEAD..branch当您在主分支上时


    查看此处了解更多详细信息:

    这不起作用。也许是因为我融入了大师,但我看到了其他人的改变。-2-不太正确。它将返回
    master
    branchA
    中的提交,但不能同时返回两者。如果
    master
    高级50次提交,但
    branchA
    已完全合并,它将返回master中的50次提交。这不会将
    branchA
    与它在master中的合并基进行比较,这似乎是第一个问题?
    git checkout branchA
    git log master..
    
    git log master..branchA