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

git仓库多人协作新建分支 合并到主分支流程详解

在多人协作的 Git 仓库中,新建分支并最终将其合并到主分支的流程是为了实现团队协作、提高代码的可管理性、确保代码质量,并且避免多人同时修改同一部分代码导致冲突。以下是这个流程的目的和具体步骤。

目录

1. 在 master 上新建一个分支

2. 进行功能开发

3. 合并功能分支到 master 分支

4. 删除开发分支


1. 在 master 上新建一个分支

首先,确保你的 master 分支是最新的。然后,创建一个新的分支来开发新功能。

a. 拉取最新的 master 分支

git pull origin master  
//拉取最新的 master 分支代码

结果 :

  • From https://gitee.com/louuuuu/dong-ruan-hospital:表示从远程仓库 https://gitee.com/louuuuu/dong-ruan-hospital 拉取数据。
  • * branch master -> FETCH_HEAD:表示你拉取的是远程的 master 分支,并且这个分支的更新内容已经被存储在一个临时的 FETCH_HEAD 中。FETCH_HEAD 是 Git 内部用来存储最近一次 git fetch 操作的数据的位置。
  • Already up to date.:这意味着你本地的 master 分支已经是最新的,与远程仓库的 master 分支没有差异,所以没有需要拉取的更新。

b. 创建并切换到新分支

假设你的功能是添加一个 feature-xyz,你可以这样创建并切换到新分支:

git checkout -b feature-xyz
//创建并切换到 feature-xyz 分支
git checkout -b feature-xyz
//仅切换

结果 : 

2. 进行功能开发

feature-xyz 分支上进行功能开发,修改代码并提交。

a. 添加和提交代码

git add .               
// 将所有修改的文件添加到暂存区
git commit -m "Add feature-xyz"  
// 提交更改

 结果 : 

  • [feature-xyz 1de68d6]:表示此次提交是在 feature-xyz 分支上,提交的哈希值为 1de68d6
  • feat:再次测试合并-何玉婷:这是你刚才输入的提交信息。
  • 1 file changed, 7 insertions(+)
    • 1 file changed:表示此次提交修改了一个文件。
    • 7 insertions(+):表示在这个文件中有 7 行新代码被添加进来。

b. 将开发分支推送到 Gitee

git push origin feature-xyz   
// 将本地的 feature-xyz 分支推送到远程仓库

输出说明: 

  • Enumerating objects: 15, done.:列举了 15 个对象(这些对象包括新的提交、文件变更等)。
  • Counting objects: 100% (15/15), done.:确认了总共有 15 个对象要处理,且已经完成。
  • Delta compression using up to 8 threads:使用最多 8 个线程进行增量压缩,这有助于减少数据传输量。
  • Compressing objects: 100% (7/7), done.:完成了 7 个对象的压缩(其中 7 个是实际的提交或文件变更)。
  • Writing objects: 100% (8/8), 742 bytes | 742.00 KiB/s, done.:所有 8 个对象成功写入到远程仓库,总大小为 742 字节,传输速度为 742.00 KiB/s。
  • Total 8 ( 4), reused 0 ( 0), pack-reused 0 (from 0):表示这次推送总共有 8 个对象,其中 4 个是增量变更,其他是新的对象。

远程提示: 

  • 表明你的推送成功上传到 Gitee(国内的一个 Git 托管平台)。
  • 提供了创建 Pull Request 的链接,建议你去 Gitee 上创建一个 Pull Request,将 feature-xyz 分支的更改合并到 master 分支。

3. 合并功能分支到 master 分支

开发完成后,需要将 feature-xyz 分支合并到 master 分支。

a. 切换回 master 分支

 git checkout master// 切换回 master 分支

b. 拉取最新的 master分支代码

git pull origin master
// 确保 master 分支是最新的

c. 合并 feature-xyz 分支到 master

git merge feature-xyz
如果合并时没有冲突,Git 会自动完成合并。如果有冲突,你需要手动解决冲突。

1. Updating ef154af..1de68d6
  • 这是合并操作中,Git 正在更新当前分支的提交历史。从 ef154af(当前分支的最新提交)到 1de68d6feature-xyz 分支的最新提交)。
  • 表示在合并的过程中,当前分支将更新到 feature-xyz 分支的最新状态。
2. Fast-forward
  • 表示合并是“快进(fast-forward)”合并。也就是说,当前分支没有新的提交,而 feature-xyz 分支包含了新的提交,因此,Git 只需将当前分支的指针直接移动到 feature-xyz 分支的最新提交,来完成合并。
  • 这种合并方式是最简单的,Git 不需要生成新的合并提交。
3. .../pages/Dashboard/MedicalFrontline/PrescriptionManagement.jsx | 7 +++++++
  • 表示在 PrescriptionManagement.jsx 文件中进行了 7 行的插入操作。
  • 这些变更来自于 feature-xyz 分支。你可以看到,这次合并只涉及到文件的插入,而没有删除或修改。
4. 1 file changed, 7 insertions(+)
  • 表示合并操作改变了一个文件,并且在该文件中插入了 7 行代码。

d. 推送合并后的 master 分支到 Gitee        

git push origin master  
// 将合并后的 master 分支推送到远程仓库

1. Total 0 ( 0), reused 0 ( 0), pack-reused 0 (from 0)
  • 这表示没有新的对象需要推送,或者说没有新的变更需要上传到远程仓库。
  • 由于你之前已经执行了 git merge 命令,合并操作是通过快进合并完成的,没有额外的提交需要推送,git push 仅仅将本地分支指向新的提交,并且没有需要传输的新数据。
2. remote: Powered by GITEE.COM [1.1.5]
  • 表示你的 Git 操作正在通过 Gitee 平台进行处理。
3. remote: Set trace flag 584b4d92
  • 这是 Gitee 系统内部的一个跟踪信息,通常用于调试和记录操作。
4. To https://gitee.com/louuuuu/dong-ruan-hospital.git
  • 显示了远程仓库的地址,这表示推送操作是发送到这个 Gitee 仓库的。
5. ef154af..1de68d6 master -> master
  • 这表示你的本地 master 分支的指针从 ef154af(原本的提交)更新到了 1de68d6(新的提交)。
  • 这次更新可能是由先前的合并(feature-xyz 分支合并)引起的,也有可能是其他修改导致。

4. 删除开发分支

如果功能开发完成并且合并到 master 后,你可以删除本地和远程的 feature-xyz 分支。

a. 删除本地分支

 branch -d feature-xyz

b. 删除远程分支

git push origin --delete feature-xyz  
 
http://www.lryc.cn/news/509798.html

相关文章:

  • Visual Studio 使用 GitHub Copilot 与 IntelliCode 辅助编码 【AI辅助开发系列】
  • 【时间之外】IT人求职和创业应知【74】-运维机器人
  • 高阶:基于Python paddleocr库 提取pdf 文档高亮显示的内容
  • STM32项目之环境空气质量检测系统软件设计
  • 重温设计模式--原型模式
  • 输变电资质分一级、二级,新办从二级开始,三级已取消
  • 浏览器http缓存问题
  • 结构化Prompt:让大模型更智能的秘诀
  • 威联通NAS部署openwrt软路由保姆级教程附镜像文件
  • 《计算机网络(第7版)-谢希仁》期末考试复习题和答案(总结整理)
  • windows和mac共享文件夹访问教程
  • 【PPTist】网格线、对齐线、标尺
  • Leetcode3218. 切蛋糕的最小总开销 I
  • ECCV-2024 | 指令不够用、大模型来生成!BEVInstructor:基于BEV感知和大模型的视觉语言导航指令生成
  • 【UE5.3.2 】引擎中安装RiderLink插件
  • 【HarmonyOS 5.0】第十二篇-ArkUI公共属性(一)
  • 京准电钟解读,NTP网络授时服务器如何提升DCS系统效率
  • 4.银河麒麟V10(ARM) 离线安装 MySQL
  • Redis四种模式在Spring Boot框架下的配置
  • Golang的性能监控指标
  • 基于GAN和DenseNett组合的调制信号分类网络(源码)
  • uniapp 项目基础搭建(vue2)
  • 中关村科金外呼机器人智能沟通破解营销难题
  • 【Linux】处理用户输入
  • flask后端开发(1):第一个Flask项目
  • Highcharts 饼图:数据可视化利器
  • 黑马商城项目—服务注册、服务发现
  • 【ES6复习笔记】Map(14)
  • 15-makefile
  • yii2 手动添加 phpoffice\phpexcel