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

Git项目合并实践

Git项目合并实践

一、前言

  • 环境

操作系统:Windows 10 专业版

代码托管平台:Gitee

  • 场景
  1. 同一个项目,在某一个时间点,被另外一个团队拷贝和修改,并且代码不在同一个仓库,最后需要合并项目

  2. 不是同一个项目,理论上更好处理,因为需要解决的文件冲突数会更少

gitee 官网:https://gitee.com/explore

ssh-keygen:https://linux.die.net/man/1/ssh-keygen

Git 入门和使用实践:https://blog.csdn.net/u011424614/article/details/113607793

二、正文

1.生成ssh公私钥

ssh-keygen -t rsa

windows 默认生成目录:C:\Users\Administrator.ssh

Linux 默认生成目录:~/.ssh

-t 密钥的类型,分别是:RSA 和 DSA

-C 密钥的注释,一般填写邮件或用户名等

-f 指定密钥生成路径

如:ssh-keygen -t rsa -C “userz” -f D:\giteessh\id_rsa

2.创建gitee仓库

  • Gitee 新建两个项目的仓库,得到两个仓库链接,例如:
git@gitee.com:abc/Test123.git
git@gitee.com:abc/Test456.git

3.本地仓库

  • 初始化本地仓库,并将项目文件提交到本地仓库
# 进入项目根目录,Test456 执行一样的操作
cd Test123
# 初始化 git 本地仓库
git init
# 将全部文件添加到暂存区
git add .
# 提交到本地仓库,-m 填写备注
git commit -m "first commit"

4.远程仓库

  • 关联远程仓库,并提交项目文件到远程仓库
# 进入项目根目录,Test456 执行一样的操作
cd Test123
# 添加远程仓库,注意:修改远程仓库地址
git remote add git@gitee.com:abc/Test123.git
# 提交项目文件到远程仓库
git push -u origin "master"

5.下载主项目

  • 将 Test456 的代码,合并到 Test123
git clone git@gitee.com:abc/Test123.git

6.合并项目

  • 主项目关联被合并项目的远程仓库
# 下载的主项目的根目录
cd Test123
# 添加被合并项目的远程仓库
git remote add merge_branch git@gitee.com:abc/Test456.git
# 查看当前项目的远程仓库(这时可以看到两个远程仓库的 fetch 和 push 地址)
git remote -v
# 拉取被合并项目的代码
git fetch merge_branch
# 创建并切换分支
git checkout -b dev merge_branch/master
# 切换回主分支
git checkout master
# 合并分支
git merge --no-ff --allow-unrelated-histories dev

7.解决冲突

  • 合并后,通过 git status 指令,查询需要处理冲突的文件(Unmerged paths 的 both added 提示的文件)
  • 处理方式:使用 Notepad++ 或 IDEA 之类的编辑器,删除冲突的代码
git status
  • 输出
On branch master
Your branch is up to date with 'origin/master'.You have unmerged paths.(fix conflicts and run "git commit")(use "git merge --abort" to abort the merge)Changes to be committed:modified:   pom.xmlnew file:   src/main/resources/application-prod.ymlUnmerged paths:(use "git add <file>..." to mark resolution)both added:      src/main/java/com/test/abc/DataHandle.javaboth added:      src/main/java/com/test/abc/DataType.java

8.提交到本地仓库

  • 冲突文件修改后,提交到本地仓库
git add src/main/java/com/test/abc/DataHandle.java
git commit -m "merge"

9.提交到远程仓库

  • 冲突文件全部修改完后,提交到远程仓库
git push -u origin "master"
http://www.lryc.cn/news/30311.html

相关文章:

  • C++实战md5、base64算法实现(附源码)
  • P6专题:P6 EPPM和PPM基本概念
  • 【为什么事务@Transactional会失效】
  • NLP中的对话机器人——模型的评估
  • 数据挖掘知识规整与心得体会
  • 修正一些formdesigner的一些bug与操作
  • 前端网络安全
  • docker内存统计
  • 【IDEA】IDEA使用有道翻译引擎—详细配置步骤
  • js求解《初级算法》56.最长公共前缀
  • 嵌入式Linux(二十四)系统烧写
  • 【ECNU】3496. 贪吃的 xjj 和贪心的 oxx(C++)
  • 【iOS】设置背景渐变色
  • Scrapy框架(高效爬虫)
  • 程序设计语言-软件设计(二十一)
  • 【小破站下载工具】Python tkinter 实现网站下载工具,所有数据一键获取
  • C51---IO口状态翻转
  • 2023年春【移动计算技术】文献精读(一)-1 ||| 附:【Markdow语法】向上取整 向下取整。
  • Java 包装类的二进制操作
  • CSS居中之 { left:50%; top:50%; transform:translate(-50%,-50%); }
  • AcWing 4868. 数字替换(DFS + 剪枝优化)
  • 【教学典型案例】01.redis只管存不管删除让失效时间删除的问题
  • 电话号码管理
  • Shell 教程
  • Shader 阴影
  • 【冲刺蓝桥杯的最后30天】day2
  • docker系列1:docker安装
  • 内核角度谈谈Linux进程和线程
  • 【mmdeploy部署系列】使用Tensorrt加速部署mmpose人体姿态库
  • IDEA 每次新建工程都要重新配置 Maven 解决方案