一位同事从大师那里创建了一个本地分支('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)
如果你想看到的要么提交master或branchA,但不同时,你可以使用"三联点"语法:
git log master...branchA
Run Code Online (Sandbox Code Playgroud)
最后,您可以分别使用完全相同的语法git diff,即,git diff master..branchA和git 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)
| 归档时间: |
|
| 查看次数: |
3421 次 |
| 最近记录: |