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

use*_*250 11 git

一位同事从大师那里创建了一个本地分支('branchA'),做了一些工作,推动了它,在master中合并,做了一些工作并再次推送它.同时,其他同事一直在研究其他分支机构并将它们合并到掌握之中.

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

如何查看对branchA所做的所有提交的差异对照创建它的master版本?

另外,我git diff如何针对master的当前HEAD进行branchA,但是只能查看branchA中更改的文件?

Chr*_*her 12

以下内容适用于您的第二个问题,如何找到branchA本地当前版本之间的差异master.您希望使用"双点"语法git log来查看branchA不在其中的所有提交master.以机智:

git log master..branchA
Run Code Online (Sandbox Code Playgroud)

根据git log手册页:

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).
Run Code Online (Sandbox Code Playgroud)

如果你想看到的要么提交masterbranchA,但不同时,你可以使用"三联点"语法:

git log master...branchA
Run Code Online (Sandbox Code Playgroud)

最后,您可以分别使用完全相同的语法git diff,即,git diff master..branchAgit diff master...branchA.

顺便说一句,如果你已经branchA签出,你甚至不需要指定它<until>.HEAD如果没有指定,Git会假设这两组命令是等价的:

git checkout branchA
git log master..
Run Code Online (Sandbox Code Playgroud)

git log master..branchA
Run Code Online (Sandbox Code Playgroud)