如何将本地更改区分到特定分支?

时间:2015-03-18 17:04:58

标签: git branch diff

这是我的情景,我认为这很常见:

  1. 分支master上的文件A。
  2. fork master进入feature
  3. 现在我在更改文件A的功能分支上添加了几个提交。
  4. 我撤消了几次编辑(通过编辑更多文件来删除更改),以便分支主文件中的文件相同,因为我的更改不是那么聪明
  5. 我做了一个新的改变,想看看我是否删除了之前的所有内容
  6. 我的第一次尝试是git diff master...
  7. 但是显示来自git diff的相同差异,它不会显示从主人到现在的变化。

    示例内容和差异

    $ git checkout master
    $ cat a
    line 1
    line 2
    
    $ git checkout feature
    $ cat a
    line 1-1
    line 2-2
    line 3
    line 4
    
    $ edit a #< from now on a is not indexed, it is locally edited
    $ cat a
    line 1
    line 2
    line 3
    
    $ git diff
    --- a
    - line 1-1
    - line 1-2
    + line 1
    + line 2
    line 3
    - line 4
    
    $ git diff master...
    --- a
    - line 1-1
    - line 1-2
    + line 1
    + line 2
    line 3
    - line 4
    

    我想得到的差异是:

    $ git diff ???
    --- a
    line 1
    line 2
    + line 3
    

1 个答案:

答案 0 :(得分:1)

只是做:

git diff master

没有“..”。

来自:http://git-scm.com/docs/git-diff

git diff [--options] <commit> [--] [<path>…]
  

此表单用于查看工作树中的更改   相对于命名的<commit>。您可以使用HEAD将其与之进行比较   最新提交,或分支名称与的提示进行比较   不同分支