git diff between cloned and original remote repository

前端 未结 3 1743

I have cloned a github repository and made no changes locally. Github repository moved forward with commits on the same branch.

  1. How do I find a diff between my
相关标签:
3条回答
  • 2020-11-29 16:15

    Another reply to your questions (assuming you are on master and already did "git fetch origin" to make you repo aware about remote changes):

    1) Commits on remote branch since when local branch was created:

    git diff HEAD...origin/master
    

    2) I assume by "working copy" you mean your local branch with some local commits that are not yet on remote. To see the differences of what you have on your local branch but that does not exist on remote branch run:

    git diff origin/master...HEAD
    

    3) See the answer by dbyrne.

    0 讨论(0)
  • 2020-11-29 16:30

    1) Add any remote repositories you want to compare:

    git remote add foobar git://github.com/user/foobar.git
    

    2) Update your local copy of a remote:

    git fetch foobar
    

    Fetch won't change your working copy.

    3) Compare any branch from your local repository to any remote you've added:

    git diff master foobar/master
    
    0 讨论(0)
  • 2020-11-29 16:32

    This example might help someone:

    Note "origin" is my alias for remote "What is on Github"
    Note "mybranch" is my alias for my branch "what is local" that I'm syncing with github
    --your branch name is 'master' if you didn't create one. However, I'm using the different name mybranch to show where the branch name parameter is used.


    What exactly are my remote repos on github?

    $ git remote -v
    origin  https://github.com/flipmcf/Playground.git (fetch)
    origin  https://github.com/flipmcf/Playground.git (push)
    

    Add the "other github repository of the same code" - we call this a fork:

    $ git remote add someOtherRepo https://github.com/otherUser/Playground.git
    
    $git remote -v
    origin  https://github.com/flipmcf/Playground.git (fetch)
    origin  https://github.com/flipmcf/Playground.git (push)
    someOtherRepo https://github.com/otherUser/Playground.git (push)
    someOtherRepo https://github.com/otherUser/Playground.git (fetch)
    

    make sure our local repo is up to date:

    $ git fetch
    

    Change some stuff locally. let's say file ./foo/bar.py

    $ git status
    # On branch mybranch
    # Changes to be committed:
    #   (use "git reset HEAD <file>..." to unstage)
    #
    #   modified:   foo/bar.py
    

    Review my uncommitted changes

    $ git diff mybranch
    diff --git a/playground/foo/bar.py b/playground/foo/bar.py
    index b4fb1be..516323b 100655
    --- a/playground/foo/bar.py
    +++ b/playground/foo/bar.py
    @@ -1,27 +1,29 @@
    - This line is wrong
    + This line is fixed now - yea!
    + And I added this line too.
    

    Commit locally.

    $ git commit foo/bar.py -m"I changed stuff"
    [myfork 9f31ff7] I changed stuff
    1 files changed, 2 insertions(+), 1 deletions(-)
    

    Now, I'm different than my remote (on github)

    $ git status
    # On branch mybranch
    # Your branch is ahead of 'origin/mybranch' by 1 commit.
    #
    nothing to commit (working directory clean)
    

    Diff this with remote - your fork: (this is frequently done with git diff master origin)

    $ git diff mybranch origin
    diff --git a/playground/foo/bar.py b/playground/foo/bar.py
    index 516323b..b4fb1be 100655
    --- a/playground/foo/bar.py
    +++ b/playground/foo/bar.py
    @@ -1,27 +1,29 @@
    - This line is wrong
    + This line is fixed now - yea!
    + And I added this line too.
    

    (git push to apply these to remote)

    How does my remote branch differ from the remote master branch?

    $ git diff origin/mybranch origin/master
    

    How does my local stuff differ from the remote master branch?

    $ git diff origin/master
    

    How does my stuff differ from someone else's fork, master branch of the same repo?

    $git diff mybranch someOtherRepo/master
    
    0 讨论(0)
提交回复
热议问题