当前位置: 首页 > news >正文

Git 8 ,git 分支开发( 切换分支开发,并设置远程仓库默认分支 )

目录

        

        前言
        一、📍环境背景
        二、💻 完整流程
        三、📝 顺序总览
        四、🔹关系图例
        五、❗暂存警告
        六、☑️ 默认分支
        七、🟣更多操作


前言

在团队开发或多人协作的项目中,Git 是最常用的版本管理工具。一个常见场景是:你已经在本地克隆了项目,但需要在远程已有的其他分支(例如 v1)上进行开发。为了保证开发效率和版本安全,你需要清楚地知道:

  1. 如何在本地切换到远程分支进行开发

  2. 如何确保本地分支和远程分支正确关联

  3. 如何提交、推送以及同步远程最新代码

本文整理了从 克隆后的本地环境 → 拉取远程分支 → 设置跟踪 → 开发提交 → 推送同步 的完整流程,并附上命令说明及动态箭头流程图,帮助你快速掌握在本地开发新分支的标准操作方法。

一、📍环境背景

你已经在本地用 git clone 把项目克隆下来了,比如:

PS G:\0. Njust_code\work_codes\xz_service>

而远程仓库默认别名是 origin(Git 克隆时自动生成),对应的地址可能是 GitHub/Gitee 等。

且远程有多个分支,比如:

  • origin/master

  • origin/v1

你需要在本地新建并切换到 v1 分支进行开发,并确保推送代码时是推到远程 origin/v1


二、💻 完整流程

从拉取到开发到推送的完整流程

2.1 查看远程分支

查看本地分支

git branch

查看远程仓库分支

git branch -r

作用:列出远程所有分支,确认目标分支(比如 origin/v1)是否存在。

2.2 获取最新远程分支信息

git fetch origin

# 作用:同步远程分支信息到本地(不会修改你的代码)。

2.3 基于远程 v1 创建本地分支并切换过去

git checkout -b v1 origin/v1

# 作用:在本地新建一个 v1 分支,并基于远程 origin/v1 初始化代码。

2.4 如果本地 v1 没自动关联远程,手动设置关联

git branch --set-upstream-to=origin/v1 v1

# 作用:让本地 v1 跟踪远程 origin/v1,这样 git pull/push 会默认同步到该分支。

2.5 确认分支跟踪关系

git branch -vv

# 作用:查看当前分支跟踪的远程分支,确保 v1 -> origin/v1。

2.6 开发并提交代码

git add .

# 作用:将修改加入暂存区。

2.7 提交备注

git commit -m "你的提交说明"

# 作用:生成一次提交记录。

2.8 推送到远程 v1

git push

# 作用:把本地 v1 的提交推送到远程 origin/v1(已关联的话可省略分支名)。

2.9 从远程拉取最新代码

git pull

# 作用:将远程 origin/v1 的最新更新合并到本地 v1。


三、📝 顺序总览

顺序总览(记住这个流程)

  1. git branch -r → 看远程分支

  2. git fetch origin → 更新分支信息

  3. git checkout -b v1 origin/v1 → 创建并切到 v1

  4. git branch --set-upstream-to=origin/v1 v1 → 设置跟踪关系

  5. git branch -vv → 确认跟踪

  6. git add .本地缓存

  7. git commit -m "说明" → 提交备注

  8. git pull → 同步

  9. git push → 推送

一般情况下,是先同步,然后推送,这里需要根据实际情况而定。


四、🔹关系图例

本地分支 ↔ 远程分支的示意关系图,结合你现在的环境(masterv1)说明你本地和远程是怎么对应的:

         远程仓库 (origin)
       ┌─────────────────┐
       │                 │
       │  master         │
       │  v1             │
       │                 │
       └─────────────────┘
             ↑   ↑
             |   |
             |   |  本地分支跟踪关系
             |   |
┌────────────┐ ┌────────────┐
│ 本地 master │ │ 本地 v1    │
│ (当前没改动)│ │ (当前开发) │
└────────────┘ └────────────┘
 

说明:

  1. 本地分支和远程分支的关系

    •  本地 master → 远程 origin/master(可通过 git push/pull 同步)

    • 本地 v1 → 远程 origin/v1(你通过 git branch --set-upstream-to=origin/v1 v1 设置跟踪关系) 

  2. 推送/拉取的逻辑

    • git push → 自动推送到对应的远程分支(只要已关联)

    • git pull → 自动拉取对应远程分支最新代码

  3. 当前开发分支

    • * v1 表示你现在在本地 v1 上开发

    • 所有提交默认和远程 origin/v1 同步


五、❗暂存警告

将所有文件添加到暂存区:

git add .

警告内容:

warning: in the working copy of 'package.json', LF will be replaced by CRLF the next time Git touches it

含义:Git 提示:你当前文件是 LF(可能从远程仓库来的),下次 Git 修改或检出这个文件时,会把 LF 转成 CRLF,因为你在 Windows 上。

  1. LF(Line Feed):Unix/Linux/Mac 系统的换行符

  2. CRLF(Carriage Return + Line Feed):Windows 系统的换行符

解决方式:

保持默认,不管这个警告。这个警告不会阻止你提交,只是提示 Git 可能会替换换行符。如果你的团队跨平台(Windows/Linux/Mac),建议统一换行符策略;如果只是 Windows 开发,可以直接忽略。

另外,在 git pull 拉取代码时,有时候可能会长时间拉取不下来,原因可能是之前添加的内容没有push,可以直接 push 进行提交(具体操作,需根据实际情况进行区分)。 


六、☑️ 默认分支

项目远程仓库设置默认分支

在大部分 Git 托管平台上操作:

  1. 打开你的仓库页面。

  2. 找到 Settings / 仓库设置 → Branches / 分支管理

  3. Default branch / 默认分支 中选择 v1,保存即可。

注意:改了默认分支后,新克隆的仓库会直接默认在 v1 上,而原来的 master 仍然存在,只是不是默认分支了。


七、🟣更多操作

请看,Git / GitHub / GitLab / Gitee 个人专栏

GitHub / GitLab / Giteehttps://blog.csdn.net/weixin_65793170/category_12208677.html

另外,在克隆公开仓库时可直接使用 git clone,无需认证;克隆私有仓库时,若用 HTTPS 协议,需用个人访问令牌(Token)代替密码。例如:

git clone https://zhijun_lee:你的令牌@gitee.com/njust_365/xz_service.git

私人令牌位置:头像 > 设置 > 私人令牌 > 修改/新建

http://www.dtcms.com/a/356687.html

相关文章:

  • 衡石SENSE 6.0技术解析:Workflow到Agent模式如何重塑计算框架
  • 04数据库约束实战:从入门到精通
  • TI-92 Plus计算器:常规计算功能介绍
  • CAN总线(Controller Area Network Bus)控制器局域网总线(二)
  • 动态UI的秘诀:React中的条件渲染
  • 当门禁系统遇上边缘计算,RK3568核心板如何带来智能化变革
  • [vmware][ubuntu]一个linux调用摄像头截图demo
  • 前端vue框架实现反向代理详解
  • 【网弧软著正版】2025最强软著材料AI生成系统,基于GPT5.0
  • 华硕主板 BIOS 提示——GPT header corruption has been detected
  • 港科大开放世界长时域具身导航!LOVON:足式机器人开放词汇目标导航
  • 数据结构 02(线性:顺序表)
  • 第四章 Vue3 + Three.js 实战:GLTF 模型加载与交互完整方案
  • Go初级之五:结构体与方法
  • 二手奢侈品拍照估价上门快递回收小程序开发
  • 前端如何使用canvas实现截图
  • 【前端教程】从零开始学JavaScript交互:7个经典事件处理案例解析
  • 嵌入式Linux驱动开发 - DTS LED驱动
  • 拼多多商品信息批量获取及开放API接口调用指南
  • 【面试场景题】dubbo可以使用自定义的序列化协议吗
  • 音视频学习(五十九):H264中的SPS
  • Kubernetes: 解构Karpenter NodePool, 云原生时代的弹性节点管理艺术
  • 【K8s】整体认识K8s之集群的pod之间的通信
  • LSM6DS3姿态芯片和LIS2MD磁力计芯片数据读取(stm32)
  • 千年智造,一触即发 耐达讯自动化Profibus集线器如何让HMI触摸屏在工业4.0中“点石成金“?
  • 嵌入式Linux驱动开发 - 并发控制机制
  • 【视频讲解】R语言海七鳃鳗性别比分析:JAGS贝叶斯分层逻辑回归MCMC采样模型应用
  • 嵌入式Linux驱动开发 - 新字符设备LED驱动
  • Go Vendor 和 Go Modules:管理和扩展依赖的最佳实践
  • Redis vs Elasticsearch:核心区别深度解析