我用这个克隆了一个回购
git clone -b <branch name> --single-branch <github url> <target directory>
这只克隆了这个分支,但现在我想切换到master和其他分支.有没有办法除了清除它并重新开始克隆我可以撤消--single-branch首选项的其余repo?
sar*_*dne 116
你可以告诉Git拉这样的所有分支:
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
Run Code Online (Sandbox Code Playgroud)
如果你看.git/config
,它看起来像这样:
[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
Run Code Online (Sandbox Code Playgroud)
我把它与一个完整的克隆进行了比较,发现唯一的区别就是"fetch" [remote "origin"]
.
注意:我正在运行Git版本1.8.2.如果您运行的是旧版本的Git,配置选项可能已更改.如果我的命令不起作用,那么我建议.git/config
您查看是否可以看到类似的内容.
小智 50
如果要添加单个分支,可以执行以下操作:
git remote set-branches --add origin [remote-branch]
git fetch origin [remote-branch]:[local-branch]
Run Code Online (Sandbox Code Playgroud)
适用于git版本1.9.1
Arn*_*iva 10
要将另一个远程分支添加到我使用 克隆的本地存储库,--single-branch
以下对我有用:
git remote set-branches --add origin [remote-branch]
git fetch
git checkout [remote-branch]
Run Code Online (Sandbox Code Playgroud)
您还可以使用通配符[remote-branch]
,例如
git remote set-branches --add origin release-1.*
git fetch
git checkout release-1.5
Run Code Online (Sandbox Code Playgroud)
这适用于 git 版本 2.21.1。建议这样git fetch origin [remote-branch]:[local-branch]
做的其他答案不起作用,因为它在未跟踪状态下创建了本地分支。运行时,git pull
它首先尝试将远程分支的所有提交再次合并到我的本地分支。
对我来说工作:
git remote remove origin
git remote add origin https://*<yourPath>*.git
git fetch
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
14895 次 |
最近记录: |