2021-09-22 repo sync 下来的代码后git branch -a 有remotes/m/master->的理解

一、当我们repo sync 下来的代码后,到某个仓库下执行git branch -a 会看到所有的分支,remotes/aosp/开头的分支都很好理解,就是在真正的远程服务器aosp上的库里,存在着对应的分支。但是有这样一个分支remotes/m/master -> aosp/honghua_2_branch,更奇怪的是这个分支的名称后面还有一个箭头,指向另外一个名称。

        那么这个remotes/m/master -> aosp/honghua_2_branch到底是什么意思呢?首先看remotes/m/master,这个就是一个repo的清单库的分支,也就是当你在执行repo init -U [URL] -b [branch_name]的时候,-b参数后面的分支。如果你repo init的时候,没有指定过-b参数。那么这里就会显示remotes/m/master。

       箭头后面的aosp/honghua_2_branch是什么呢?它就是在清单库里的default.xml里面指定的单个git库的revision值,也就是对应的分支。

二、好,按照上面的理解,我们在 repo init后加一个jhs896的分支,从下图上看git branch -a后是会有remotes/m/jhs896 -> aosp/honghua_2_branch,这么看这样理解是没问题的。

三、参考文章

refs/remotes/m分支的含义_weixin_34289454的博客-CSDN博客

<think>好的,用户想知道在git clone项目后如何切换分支。我需要根据提供的引用内容来解答这个问题。 首先,用户可能刚克隆了一个仓库,需要切换到其他分支。常见的做法是使用git checkout命令。根据引用[2],使用git clone时可以通过--branch参数指定分支,比如git clone --branch develop [仓库地址],这样可以自动切换到develop分支。但用户问的是克隆之后如何切换,所以需要说明克隆后的步骤。 引用[1]中的例子提到了git checkout master,说明在克隆后可以通过git checkout <分支名>来切换。此外,引用[3]提到repo sync后执行git rebase origin/branch,这可能涉及到远程分支的更新。不过用户的问题更基础,应该先介绍本地切换分支的方法。 需要分步骤说明:首先查看所有分支,包括远程分支,然后切换到已有分支或者基于远程分支创建新分支。例如,使用git branch -a查看所有分支git checkout existing_branch切换到本地存在的分支,或者git checkout -b new_branch origin/remote_branch创建并切换到新分支,跟踪远程分支。 另外,引用[5]中提到的相关文章可能有更详细的分支操作指南,比如git branch的使用,但用户可能只需要切换分支的基本步骤,不需要深入细节。需要确保步骤清晰,命令正确,同时引用相关的参考资料。 还需要注意用户是否克隆时使用了特定选项,比如--mirror或--local,但根据问题描述,用户是常规克隆后的操作。所以主要说明常规情况下的切换方法,可能提及如何获取远程分支列表,避免遗漏重要步骤。 总结回答步骤:查看分支列表,切换本地分支,创建并切换新分支跟踪远程分支。最后,给出相关问题的建议,比如如何删除分支或解决冲突,引用提供的资料。</think>### Git克隆后切换分支操作指南 在克隆项目后切换分支Git的常规操作,以下是具体步骤: --- #### 一、查看所有可用分支 1. **查看本地分支** 默认克隆后仅包含远程仓库的默认分支(通常是`master`或`main`)。 使用命令查看本地已存在的分支: ```bash git branch ``` 2. **查看远程分支** 要查看远程仓库的所有分支(包括未下载到本地的分支): ```bash git branch -a ``` 输出示例: ``` * main remotes/origin/HEAD -> origin/main remotes/origin/develop remotes/origin/feature-login ``` --- #### 二、切换到已有分支 1. **直接切换本地分支** 如果分支已存在于本地,直接使用`git checkout`: ```bash git checkout develop ``` 2. **基于远程分支创建本地分支** 如果远程分支未同步到本地,需先创建本地分支并关联远程分支: ```bash git checkout -b develop origin/develop ``` - `-b develop`:创建名为`develop`的本地分支 - `origin/develop`:关联远程分支`origin/develop` --- #### 三、从远程仓库拉取新分支 1. **首次拉取远程分支** 若远程有新分支`feature-login`,但本地未同步,执行: ```bash git fetch origin # 更新远程分支信息 git checkout -b feature-login origin/feature-login ``` 2. **验证切换结果** 运行`git branch`确认当前分支已切换,星号`*`标识当前所处分支: ``` main * develop feature-login ``` --- #### 四、注意事项 - **克隆时指定分支**:若已知目标分支,可在克隆时直接指定(如`git clone --branch develop [仓库地址]`),省去后续切换步骤[^2]。 - **解决冲突**:切换分支前需提交或暂存当前修改,否则可能因冲突导致切换失败[^3]。 - **更新代码**:切换分支后建议运行`git pull`以同步最新代码---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值