正确答案是b,即git clone git@gitee.com:user/repo.git,因其符合SSH协议标准格式git@<host>:<user>/<repo>.git,支持密钥认证免密操作。

克隆远程仓库不是“选一个命令敲下去就完事”,而是要先判断用什么协议、有没有权限、本地环境是否就绪。直接 git clone 报错,八成卡在认证或地址格式上。
怎么选 HTTPS 还是 SSH 地址
HTTPS 地址长这样:https://gitee.com/username/repo.git 或 https://github.com/username/repo.git;SSH 地址必须以 git@ 开头,比如 git@gitee.com:username/repo.git。
区别不在“快不快”,而在“要不要反复输密码”和“能不能推代码”:
- HTTPS:适合只读克隆,或你不想配密钥;但每次
git push都会弹窗/命令行提示输账号密码(除非你配了凭据助手) - SSH:需要提前生成并上传
id_rsa.pub到平台(GitHub/Gitee 的 Settings → SSH Keys),但一旦配好,git push和git pull都免密操作 - 别用
ssh://...格式——Git 支持它,但绝大多数托管平台的“复制克隆地址”按钮给的都是git@host:path.git形式,混用容易连不上
克隆时提示 “Permission denied (publickey)” 怎么办
这不是网络问题,是 SSH 密钥没被正确加载。常见原因和应对方式:
- 根本没生成密钥:运行
ssh-keygen -t ed25519 -C "your_email@example.com"(推荐 ed25519,比 RSA 更安全) - 公钥没加到 Gitee/GitHub 后台:复制
~/.ssh/id_ed25519.pub全文,粘贴到平台的 SSH Keys 设置页 - 本地 agent 没启动或没加载密钥:在终端执行
eval "$(ssh-agent -s)",再执行ssh-add ~/.ssh/id_ed25519 - 用的是 Git Bash 但开了 Windows Terminal:某些终端不自动继承 ssh-agent 环境变量,建议统一用 Git Bash 操作
克隆后只有 main/master 分支,其他分支去哪了
克隆默认只拉取远程的 HEAD 指向的分支(通常是 main 或 master),其他分支只是“远程跟踪分支”存在,不会自动建本地分支。
想看到所有远程分支:运行 git branch -r
想基于某个远程分支创建本地分支并切换过去:
-
git checkout -b feat/login origin/feat/login(Git -
git switch -c feat/login --track origin/feat/login(Git ≥ 2.23,更语义化)
注意:origin/xxx 是远程跟踪分支名,不能直接 commit;必须先建对应本地分支才能写代码。
克隆慢、卡住、中途失败怎么办
不是网差,大概率是 DNS 解析或连接被干扰,尤其在国内访问 GitHub 时:
- 试试换协议:如果 SSH 卡,临时切 HTTPS(
git clone https://github.com/username/repo.git),验证是不是 SSH 配置问题 - 跳过检出文件(只下载 Git 历史):
git clone --no-checkout git@gitee.com:username/repo.git,之后再git checkout - 限制并发数防超时:
git clone --depth=1 git@gitee.com:username/repo.git(浅克隆,只取最新一次提交,适合 CI 或快速查看) - 别在公司内网或校园网下硬刚 GitHub——Gitee 镜像或代理配置更实际
克隆完成只是起点,真正容易被忽略的是:远程分支名可能和你预期不同(比如叫 dev 而不是 develop),而 git clone 不会告诉你这些分支是否存在,得自己查。


















