Answers:
您可以告诉Git像这样拉所有分支:
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin
如果您查看.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
我将其与完整克隆进行了比较,发现唯一的区别是的“提取” [remote "origin"]
。
注意:我正在运行1.8.2的Git版本。如果您运行的是旧版Git,则配置选项可能已更改。如果我的命令不起作用,那么我建议.git/config
您仔细检查一下是否可以看到类似的内容。
git
命令行工具是令人难以置信的强大(其实大部分的命令其他命令的条款来实现),这样你就可以,一旦你了解了仓库的布局方式(基本上怎么做了一大堆的东西,它.git
的文件夹作品)。
git show-ref tags
仍然失败。
git clone --depth=1 --branch branchname git@github.com:foobar/repo.git destinationpath
如果要添加单个分支,可以执行以下操作:
git remote set-branches --add origin [remote-branch]
git fetch origin [remote-branch]:[local-branch]
适用于git版本1.9.1
fetch =
在.git / config中添加多行,当您要在远程的两个分支之间切换但不获取其他所有分支时,非常方便。谢谢!
要将另一个远程分支添加到使用克隆的本地存储库中--single-branch
,以下对我有用:
git remote set-branches --add origin [remote-branch]
git fetch
git checkout [remote-branch]
您也可以将通配符用于[remote-branch]
,例如
git remote set-branches --add origin release-1.*
git fetch
git checkout release-1.5
这可以在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