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