【git】在Linux系统下clone指定分支

文章目录

      • 0.首先查看远端服务器,远程分支列表:
      • [**1. 简化分支名称(去掉 `refs/heads/` 前缀)**](#1. 简化分支名称(去掉 refs/heads/ 前缀))
      • [**2. 检查 Git 版本**](#2. 检查 Git 版本)
      • [**3. 使用完整克隆后切换分支**](#3. 使用完整克隆后切换分支)
      • [**4. 调试网络/服务器问题**](#4. 调试网络/服务器问题)
      • [**5. 联系仓库管理员**](#5. 联系仓库管理员)
      • **总结步骤**

正确格式:git clone -b 正确的分支名 ssh://git@xxxx.01:2200/tws/ris.git

0.首先查看远端服务器,远程分支列表:

bash 复制代码
git ls-remote --heads ssh://git@xxx.01:2200/tws/ris.git

输入指令执行:

遇到错误:

根据 git ls-remote --heads 的输出,分支 sdk5.6.0_remove_minios 确实存在于远程仓库(哈希值 18a7e728f1...),但克隆时却报错 not found。这可能是由于 Git 版本或服务器配置的兼容性问题。以下是解决方案:


1. 简化分支名称(去掉 refs/heads/ 前缀)

Git 的 -b 参数只需要分支名,无需完整路径。
错误命令

bash 复制代码
git clone -b refs/heads/sdk5.6.0_remove_minios ssh://git@10xxxxx2200/tws/ris.git

正确命令

bash 复制代码
git clone -b sdk5.6.0_remove_minios ssh://git@10xxxxxx90:2200/tws/ris.git

2. 检查 Git 版本

某些旧版 Git 对分支名解析存在问题。升级 Git:

bash 复制代码
git --version  # 确认版本
sudo apt-get update && sudo apt-get install git -y  # Ubuntu/Debian

3. 使用完整克隆后切换分支

如果直接克隆仍失败,尝试先克隆默认分支再切换:

bash 复制代码
git clone ssh://git@xxxx:2200/tws/ris.git
cd ris
git checkout sdk5.6.0_remove_minios

4. 调试网络/服务器问题

错误 the remote end hung up unexpectedly 可能是网络或服务器问题:

  • 检查 SSH 连接

    bash 复制代码
    ssh -T git@xxxxx -p 2200  # 测试SSH连通性
  • 启用详细日志

    bash 复制代码
    GIT_TRACE=1 GIT_SSH_COMMAND="ssh -v" git clone -b sdk5.6.0_remove_minios ssh://git@1xxxxx.90:2200/tws/polaris.git

5. 联系仓库管理员

如果问题持续,可能是服务器端限制(如分支权限、存储空间不足等),需管理员协助检查:

  • 仓库的 upload-pack 服务是否正常。
  • 分支是否被意外隐藏或删除。

总结步骤

  1. 首先查看远端服务器,远程分支列表:
  2. 直接使用分支名 (去掉 refs/heads/)。
  3. 升级 Git 到最新版本。
  4. 分步克隆(先克隆后切换分支)。
  5. 检查网络/SSH 或联系管理员。

正确格式:git clone -b 正确的分支名 ssh://git@xxxx.01:2200/tws/ris.git

如果仍有问题,请提供 GIT_TRACE=1 的完整输出日志。

相关推荐
偶尔贪玩的骑士3 小时前
Kioptrix Level 1渗透测试
linux·开发语言·网络安全·php
我命由我123453 小时前
Spring Cloud - Spring Cloud 微服务概述 (微服务的产生与特点、微服务的优缺点、微服务设计原则、微服务架构的核心组件)
java·运维·spring·spring cloud·微服务·架构·java-ee
楠木s3 小时前
ctfshow pwn44
linux·服务器·网络·安全·网络攻击模型·二进制
ajassi20003 小时前
开源 Linux 服务器与中间件(七)数据库--MySQL
linux·服务器·数据库·ubuntu·开源
---学无止境---3 小时前
Linux中页表缓存初始化pgtable_cache_init函数的实现
linux
风为你而吹4 小时前
【玩泰山派】8、泰山派安装armbian,玩armbian
linux
qiuiuiu4134 小时前
正点原子RK3568学习日志12-注册字符设备
linux·开发语言·单片机·学习·ubuntu
Kent_J_Truman4 小时前
Git个人配置偏好记录以及注意事项
git
ZHE|张恒4 小时前
使用 Docker 容器测试端口开放性
运维·docker·容器
一吃就胖的4 小时前
【给服务器安装服务器安装nacos】
java·运维·服务器