How do I "undo" a

I cloned a repo using the

git clone -b <branch name> --single-branch <github url> <target directory>

This cloned ONLY this branch, but now I want to switch to the master and other branches. Is there any way besides clearing it out and starting over to clone the rest of the repo that I can undo the --single-branch preference?


You can tell Git to pull all branches like this:

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

If you look in .git/config , it'll look something like this:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = false
[remote "origin"]
    url = https://github.com/owner/repo.git
    fetch = +refs/heads/master:refs/remotes/origin/master
[branch "master"]
    remote = origin
    merge = refs/heads/master
    rebase = true

I compared this to a full clone, and saw that the only difference was the "fetch" under [remote "origin"] .

Note: I'm running Git version 1.8.2. The config options may have changed if you're running an older version of Git. If my commands don't work, then I'd recommend looking through .git/config to see if you can see something similar.


If you want to add a single branch, you can do the following:

git remote set-branches --add origin [remote-branch]
git fetch origin [remote-branch]:[local-branch]

Works with git version 1.9.1


Just add the original repo as a new remote, and work off of there?

git remote add path/to/myrepo myNewOrigin
git fetch myNewOrigin

You can even delete your current 'origin' remote and rename 'myNewOrigin' to 'origin' if you would want to.

From there you can pull/merge/rebase.

链接地址: http://www.djcxy.com/p/26118.html

上一篇: 不同模式中表之间的关系映射

下一篇: 我如何“撤销”a