diff current working copy of a file with another branch's committed copy

后端 未结 6 2096
醉话见心
醉话见心 2020-12-12 13:27

I have a repo with file foo in the master branch. I switched to bar branch and made some changes to foo. How can I now run a git diff

相关标签:
6条回答
  • 2020-12-12 13:38

    The following works for me:

    git diff master:foo foo

    In the past, it may have been:

    git diff foo master:foo

    0 讨论(0)
  • 2020-12-12 13:41

    You're trying to compare your working tree with a particular branch name, so you want this:

    git diff master -- foo
    

    Which is from this form of git-diff (see the git-diff manpage)

       git diff [--options] <commit> [--] [<path>...]
           This form is to view the changes you have in your working tree
           relative to the named <commit>. You can use HEAD to compare it with
           the latest commit, or a branch name to compare with the tip of a
           different branch.
    

    FYI, there is also a --cached (aka --staged) option for viewing the diff of what you've staged, rather than everything in your working tree:

       git diff [--options] --cached [<commit>] [--] [<path>...]
           This form is to view the changes you staged for the next commit
           relative to the named <commit>.
           ...
           --staged is a synonym of --cached.
    
    0 讨论(0)
  • 2020-12-12 13:45

    Also: git diff master..feature foo

    Since git diff foo master:foo doesn't work on directories for me.

    0 讨论(0)
  • 2020-12-12 13:46
    git diff mybranch master -- file
    

    should also work

    0 讨论(0)
  • 2020-12-12 13:51
    git difftool tag/branch filename
    
    0 讨论(0)
  • 2020-12-12 14:05

    To see local changes compare to your current branch

    git diff .
    

    To see local changed compare to any other existing branch

    git diff <branch-name> .
    

    To see changes of a particular file

    git diff <branch-name> -- <file-path>
    

    Make sure you run git fetch at the beginning.

    0 讨论(0)
提交回复
热议问题