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

Git | 理解团队合作中Git分支的合并操作

合并操作

  • 团队合作中Git分支的合并操作
    • 分支合并过程
      • 1.创建feature/A分支的过程
      • 2. 创建分支feature/A-COPY
      • 3.合并分支
        • 查看代码是否改变

团队合作中Git分支的合并操作

  • 需求
    假设团队项目中的主分支是main,团队成员A基于主分支main创建了feature/A,而我又在团队成员A创建的分支feature/A的基础上创建了feature/A-COPY。
    项目各自进行了一段时间,我做了一些功能开发,我想将我的分支做的改动合并到团队成员A创建的分支上,即feature/A-COPY->feature/A
    改动可能涉及到删除、增加

    若是你也想使用该项目练习,联系我,我看到会回你,我也期待多人协作,想看到多人写作又是一个什么效果 ,期待ing

分支合并过程

  • 主分支的结构如下
    在这里插入图片描述

GitHub:main主分支的文件

1.创建feature/A分支的过程

  • 你应该位于main分支上
  • 执行命令
git checkout -b feature/A

该命令会基于main分支创建主分支,然后在该分支上做如下更改
深刻理解sys.path.append方法的用法,你也可以随便增加一些简单的.py文件

  • 查看状态并将该分支推送到远程仓库
git status
git add .
git commit -m '这里填写你想要说的东西-简要说明'
git push origin feature/A

到此为止,团队成员A的feature/A分支已经创建完毕,查看分支:
GitHub: feature/A的文件
在这里插入图片描述

你的网络oK的话,可以直接在线查看两个分支的不同
下一步骤,创建分支feature/A-COPY:

2. 创建分支feature/A-COPY

  • 说明
    需求里提到分支feature/A-COPY是基于A的分支创建的,因此首先你要检查你是否处于分支feature/A的下面:
git branch

带*的即目前所处于的分支位置
在这里插入图片描述

  • 创建分支
git checkout -b feature/A-COPY

截至目前,分支feature/A和feature/A-COPY的内容是一样的
在这个分支上我们做如下操作:

  1. 删除内容
    在这里插入图片描述

  2. 在该分支上增加decorate.py文件

  3. 其位置如下:
    在这里插入图片描述

  4. 提交到远程

23284@zhenHao MINGW64 /e/GitRepository/PythonModuleLearn (feature/A-COPY)
$ git status
On branch feature/A-COPY
Changes to be committed:(use "git restore --staged <file>..." to unstage)new file:   learnTest/decorate.pyChanges not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified:   learnTest/app.logmodified:   learnTest/decorate.py23284@zhenHao MINGW64 /e/GitRepository/PythonModuleLearn (feature/A-COPY)
$ git add .23284@zhenHao MINGW64 /e/GitRepository/PythonModuleLearn (feature/A-COPY)
$ git commit -m 'add new file about decorate.py in learnTest'
[feature/A-COPY e7ed9cc] add new file about decorate.py in learnTest2 files changed, 47 insertions(+)create mode 100644 learnTest/decorate.py23284@zhenHao MINGW64 /e/GitRepository/PythonModuleLearn (feature/A-COPY)
$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.git pull <remote> <branch>If you wish to set tracking information for this branch you can do so with:git branch --set-upstream-to=origin/<branch> feature/A-COPY23284@zhenHao MINGW64 /e/GitRepository/PythonModuleLearn (feature/A-COPY)
$ git push origin feature/A-COPY
Enumerating objects: 8, done.
Counting objects: 100% (8/8), done.
Delta compression using up to 28 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 1.08 KiB | 1.08 MiB/s, done.
Total 5 (delta 2), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
remote:
remote: Create a pull request for 'feature/A-COPY' on GitHub by visiting:
remote:      https://github.com/haozhenHG/PythonModuleLearn/pull/new/feature/A-COPY
remote:
To https://github.com/haozhenHG/PythonModuleLearn.git* [new branch]      feature/A-COPY -> feature/A-COPY
  1. 查看GitHub仓库
    在这里插入图片描述

3.合并分支

将 分支feature/A-COPY->feature/A 合并
在 Git 中,如果你想要将一个分支的更改合并到另一个分支,你可以使用 git merge 命令。以下是将 feature/A-COPY 分支合并到 feature/A 分支的步骤:

  1. 切换到目标分支:首先,你需要切换到你想要合并更改到的目标分支。在这个例子中,是 feature/A 分支。

    git checkout feature/A
    
  2. 拉取最新的更改:在合并之前,确保你的本地分支是最新的。这通常意味着你需要拉取远程仓库的最新更改。

    git pull origin feature/A
    
  3. 合并另一个分支:然后,你可以使用 git merge 命令将 feature/A-COPY 分支合并到当前分支(在这个例子中是 feature/A)。

    git merge feature/A-COPY
    
  4. 解决冲突:如果在合并过程中出现冲突,Git 会提示你解决这些冲突。你需要手动编辑冲突的文件,然后使用以下命令标记冲突已解决并准备提交:

    git add <冲突的文件>
    git commit -m "解决合并 feature/A-COPY 的冲突"
    
  5. 推送更改:合并完成后,你可以将更改推送到远程仓库。

    git push origin feature/A
    

如果你想要在合并之前查看两个分支之间的差异,可以使用 git diff 命令:

git diff feature/A feature/A-COPY

这将显示两个分支之间的差异,帮助你了解合并将带来的具体更改。

请注意,合并操作可能会影响你的工作流程,因此在执行合并之前,确保你已经与团队成员沟通,并且了解合并可能带来的影响。如果你不确定,可以先在本地创建一个新的分支来测试合并操作。

23284@zhenHao MINGW64 /e/GitRepository/PythonModuleLearn (feature/A-COPY)
$ git branchfeature/A
* feature/A-COPYmain
gi
23284@zhenHao MINGW64 /e/GitRepository/PythonModuleLearn (feature/A-COPY)
$ git checkout feature/A
Switched to branch 'feature/A'23284@zhenHao MINGW64 /e/GitRepository/PythonModuleLearn (feature/A)
$ git merge feature/A-COPY
Updating 6cd2a7a..e7ed9cc
Fast-forwardlearnTest/app.log     |  6 ++++++learnTest/decorate.py | 41 +++++++++++++++++++++++++++++++++++++++++2 files changed, 47 insertions(+)create mode 100644 learnTest/decorate.py23284@zhenHao MINGW64 /e/GitRepository/PythonModuleLearn (feature/A)
$ git push origin feature/A
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To https://github.com/haozhenHG/PythonModuleLearn.git6cd2a7a..e7ed9cc  feature/A -> feature/A
查看代码是否改变

在这里插入图片描述
在这里插入图片描述

http://www.lryc.cn/news/494822.html

相关文章:

  • C++多态的实现原理
  • [极客大挑战 2019]PHP--详细解析
  • map用于leetcode
  • CommonJS 和 ES Modules 的 区别
  • 科技为翼 助残向新 高德地图无障碍导航规划突破1.5亿次
  • Flink四大基石之Time (时间语义) 的使用详解
  • Spring WebFlux与Spring MVC
  • 【深度学习基础】一篇入门模型评估指标(分类篇)
  • D80【 python 接口自动化学习】- python基础之HTTP
  • ⽂件操作详解
  • 双高(高比例新能源发电和高比例电力电子设备)系统宽频振荡研究现状
  • TorchMoji使用教程/环境配置(2024)
  • 使用 Python 中的 TripoSR 根据图像创建 3D 对象
  • Spring 框架中AOP(面向切面编程)和 IoC(控制反转)
  • 电机瞬态分析基础(7):坐标变换(3)αβ0变换,dq0变换
  • Open3D (C++) 生成任意3D椭圆点云
  • 5.利用Pandas以及Numpy进行数据清洗
  • @Bean注解详细介绍以及应用
  • 基于SpringBoot的预制菜销售系统
  • 从 EXCEL 小白到 EXCEL 高手的成长之路
  • 【纸飞机串口调试工具】数值显示器及四则运算
  • 浅谈volatile
  • Python3 爬虫 Scrapy的使用
  • 多线程篇-4--重点概念1(volatile,Synchronized,内存屏障,MESI协议)
  • 本地学习axios源码-如何在本地打印axios里面的信息
  • 1、SpringBoo中Mybatis多数据源动态切换
  • 【浏览器】缓存与存储
  • 积鼎科技携手西北工业大学动力与能源学院共建复杂多相流仿真联合实验室
  • 5. langgraph实现高级RAG (Adaptive RAG)
  • Postman设置接口关联,实现参数化