There isn't anything to compare. Nothing to compare, branches are entirely different commit histories

后端 未结 18 870
北恋
北恋 2020-12-12 22:54

I have a CMS theme installed on my machine. I\'m tracking changes to it via git and decided to back it up on GitHub so I could share those changes.

The theme as prov

18条回答
  •  自闭症患者
    2020-12-12 23:14

    The Short Answer

    It looks like GitHub won't let you compare the branches because they don't actually share any of the same history at all, even though they may share much of the same files and code.

    Here is a screenshot of the temporary fork I made of your repo, where I tried to compare master with the upstreambranch, like you described. Notice the error message:

    Error message screenshot

    It says:

    There isn't anything to compare.

    master and upstreambranch are entirely different commit histories.

    The Long Answer

    You probably downloaded the original source and added it to a completely new repo instead of cloning the original repo, right? Doing that will make it so that the history of your repo will be completely different from the history of the original repo, since your new repo won't have any of the same commits with the same sha IDs.

    You can see that by doing a reverse log of your master branch and the upstreambranch:

    # Your first commit, see commit sha
    git log --reverse master
    commit c548d7b1b16b0350d7fbdb3ff1cfedcb38051397 # <== HERE
    Author: Padraic Stack 
    Date:   Wed Apr 2 15:11:28 2014 +0100
    
        First commit of everything
    
    # First commit sha of the original repo
    git log --reverse upstreambranch
    commit 105a12817234033c45b4dc7522ff3103f473a862 # <== THERE
    Author: Jeremy Boggs 
    Date:   Mon Feb 22 16:00:53 2010 +0000
    
        Creates repo directories for the Seasons theme.
    

    Solutions

    If you redo your commits on top of the original history, you should then be able to compare the branches. There are several different ways that you can redo your commits, including

    git rebase --onto
    

    and

    git cherry-pick
    

    You also can redo each commit manually, if you have to.

提交回复
热议问题