How can I pull down a commit from Github (Enterprise) that I don't have locally?

前端 未结 3 539
滥情空心
滥情空心 2021-02-05 19:46

I accidentally did a push --force on the wrong repo (too many termminals open), effectively resetting the master branch back to an earlier commit.

Looking a

相关标签:
3条回答
  • 2021-02-05 19:55

    You can create a branch from an orphaned commit in the Github GUI by doing the following:

    1. Browse to https://github.com/yourOrg/yourRepo/tree/commitHash
    2. Click on the branch dropdown
    3. Type in the new branch name and hit Enter

    Now that you have a branch, you can use your Git client to check it out as normal.

    Notes

    This post was helpful as I researched this. It basically states that you are stuck unless you have a local repository containing the orphaned commits. My approach allows you to add a branch so the commit is no longer orphaned.

    0 讨论(0)
  • 2021-02-05 20:05

    I understand currently you don't have the commit locally; nevertheless you can get it, without modifying your workspace, simply like this:

    git fetch
    

    After that, if ever you have current modification, or something like that, you can stash them temporary:

    git stash save "My work to be completed later"
    

    Then you can move back to your master branch:

    git checkout -f master
    

    Then, force to move the HEAD to the orphan commit you want:

    git reset --hard XYZ
    

    As alternative, in case, you prefer destroying and recreating your master branch, you can "move" to another branch, destroy the master branch and recreate it:

    git checkout -b anyOtherBranch
    git branch -D master
    git checkout -b master XYZ
    

    And eventually, push force your new master branch;

    git push --force origin master
    
    0 讨论(0)
  • 2021-02-05 20:09

    Is XYZ is reachable by some branch you can simply fetch. If not, please follow @weste's instructions to get it pointed to by a branch and then fetch:

    git fetch
    git checkout master
    git reset --hard XYZ
    git push -f origin master
    
    0 讨论(0)
提交回复
热议问题