How do I “undo” a --single-branch clone?
我用
这只克隆了这个分支,但现在我想切换到主分支和其他分支。除了清除它并重新克隆回购的其余部分之外,还有什么方法可以撤消——单分支首选项吗?
你可以告诉Git像这样拉所有的分支:
1 2 | git config remote.origin.fetch"+refs/heads/*:refs/remotes/origin/*" git fetch origin |
号
如果你看
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [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 |
我把它比作一个完整的克隆,发现唯一的区别是在
注意:我运行的是git版本1.8.2。如果您运行的是旧版本的Git,则配置选项可能已更改。如果我的命令不起作用,那么我建议查看
如果要添加单个分支,可以执行以下操作:
1 2 | git remote set-branches --add origin [remote-branch] git fetch origin [remote-branch]:[local-branch] |
。
适用于Git版本1.9.1
只需将原始回购添加为一个新的遥控器,然后在那里工作?
1 2 | git remote add path/to/myrepo myNewOrigin git fetch myNewOrigin |
如果您愿意,甚至可以删除当前的"origin"remote,并将"myneworigin"重命名为"origin"。
从那里你可以拉/合并/重新平衡。