背景:一个项目存在多个分支A,B,C,D,本地在其中一个分支上A-local,现在需要拉取远程的另一个分支B并给予该分支创建一个新的本地分支B-local,且不影响现在所在的分支上A1;
- 操作步骤
- 当前本地分支:A-local
- 远程分支:origin/feature/B(你要拉取的分支)
- 新建本地分支名:feature/B-local
- 方法1:标准安全流程(推荐)
# 获取最新数据(不自动合并)
git fetch origin
# 查看远程分支是否存在(可选)
git branch -r | grep feature/B
#基于远程分支创建新本地分支并切换
git checkout -b feature/B-local origin/feature/B
- 方法2:现代简洁写法
git fetch origin
git switch -c feature/B-local origin/feature/B
- 总结命令(一行式解决方案)
git fetch origin && git switch -c feature/new-module origin/feature/new-module
*上面这个操作:自动建立远程跟踪,保持工作目录干净,适用于任何Git版本(2.23+推荐用switch替代checkout)
- 验证操作成功
#查看当前分支
git branch
# 查看分支跟踪关系
git branch -vv
#在新分支上第一次Push需要使用一下命令:
* 补充说明
* `git branch -r | grep feature/B`:其中`|`竖线表示管道符,其作用是将前一个命令的输出作为后一个命令的输入;此处将 `git branch -r` 列出的所有远程分支名称,传递给 `grep` 命令处理;`grep` 命令是指在输入文本中搜索包含`feature/B`的行(只显示包含该分支名的行(用于快速确认远程分支是否存在))