如何对 GIT 分支进行规划? (转)

简介: 项目背景: 该项目是在2011年11月份使用Asp.net三层帮荷兰某个客户开发的机票预定系统 该客户主要是做中国与欧洲的旅行社业务,特别是最近两年由于中国的发展因此客户也越来越重视机票业务 于是他们跟去哪儿沟通并进行了合作,并我司来完成与去哪儿机票业务的对接业务 因为该客户项目从一开始...
项目背景:
该项目是在2011年11月份使用Asp.net三层帮荷兰某个客户开发的机票预定系统
该客户主要是做中国与欧洲的旅行社业务,特别是最近两年由于中国的发展因此客户也越来越重视机票业务
于是他们跟去哪儿沟通并进行了合作,并我司来完成与去哪儿机票业务的对接业务
因为该客户项目从一开始就由我来负责,因此该对接业务也就自然而然的落到我的身上 
 
问题描述:
因为对接功能需要与现在的项目进行整合,因此我只是在机票预定系统的解决方案里添加了一个新项目(Qunar),并且使用Git来分别进行版本控制(2015前使用VSS,就是因为Git的分支功能)
 
后面由于去哪儿某个功能是在另一个API里实现的,而且跟对接功能也没有太大的关系,因此又将其作为一个单独的项目(QunarServices)来完成
 
在进行对接功能期间网站项目也有变更(对接功能会影响到网站后台的某个功能)
因为这三个分支实现的功能大部分是不一样的,所以我只能按不同的分支来进行管理
重点是在三个项目之间(四个分支加上master)同时进行开发,因为所有项目都使用了N个通用的项目(Model等)所以当某个分支对通用的组件项目进行了变更后,其他的三个分支也需要同步以保持一致(某些分支如果不同步可能也不会影响该分支的功能,只是三个分支通用项目进行同步)
 
关于如何合并其他分支的某些文件,我现在的处理流程是这样的:
  1. 先检验当前分支与要合并分支通用文件的差异(要合并的分支必须要全部commit)
  2. 拉出要“合并某分支文件有差异”的所有文件(通用项目中的文件) git checkout 分支名称 文件名 文件名
  3. 添加并commit到当前分支 git commit -a -m '注释 合并其他分支的某些文件 和合并分支提交时的说明信息'
 
当通用的项目文件很少更改时,以上方案运行的不错
最近去哪儿项目正在收尾阶段,因此在对解决方案进行整合,然后我就发现三个分支里的通用项目都有差异(最近三个分支都对通用项目进行变更且没有合并)
这样就对我整合解决方案带来了很多阻力(我需要将三个分支的通用项目时行合并)
因为通用项目都只是引用了该通用项目的DLL组件而已,所以完全没有必要在每个分支里进行维护(已经从2015年初到至今)
于是我就在想是不是我的解决方案规划有问题而导致了我错误的使用了Git,但如果有问题的话我该如何规则分支和解决方案呢?
 
问题来了: 如何在尽量不丢失提交历史的情况下对整个解决方案和分支进行重新规则
 
想到的解决方案:
  1. 在不改变当前分支的情况下,在每个分支里将通用项目进行过滤(不删除项目文件),只将其保留master分支(master从2015后没有进行过合并,需要合并所有通用项目的提交历史大概有50+要循环以上合并流程)
  2. 将通用项目从每个分支过滤,并单独作为一个单独的分支进行维护(同1类似也需要循环以上合并流程)
  3. 删除所有分支并重建(不可能,有很多提交历史)
  4. 其他??
目前分支说明:
master:VSS迁移后的Web基准分支(2015年从VSS迁移后无提交)
website:基于master web项目分支
qunar2:基于master 去哪儿对接项目分支
qunarTTS:基于qunar2 去哪儿对接项目某服务分支
 
 
 
 
相关文章
|
6天前
|
开发工具 git
图解Git——分支的新建与合并《Pro Git》
在Git开发中,新建与合并分支是常见的操作。以实际开发为例:为实现新需求创建分支`iss53`进行开发;遇紧急Bug时,切换至线上分支创建`hotfix`修复并合并回线上分支,再切换回`iss53`继续工作。完成`iss53`后,切换到`master`合并。若出现冲突,使用`git status`查看,手动编辑解决冲突后标记为已解决并提交。图形化工具如`git mergetool`也可辅助解决冲突。
35 9
|
6天前
|
开发工具 git 开发者
图解Git——分支简介《Pro Git》
Git 分支是其核心特性之一,允许开发者从主开发线分离工作,避免干扰主线。传统版本控制系统创建分支效率低,而Git的分支创建和切换非常轻量高效。
34 9
|
6天前
|
存储 项目管理 开发工具
图解Git——分支开发工作流《Pro Git》
分支开发工作流利用Git的分支功能,支持灵活的项目管理。长期分支如`master`和`develop`分别保存稳定和开发中的代码;短期主题分支用于开发单一特性或修复问题,完成后合并到主分支。此模式确保代码稳定性,支持并行开发、便于审查和灵活调整。建议维护明确的长期分支,保持主题分支短小精悍,并定期清理无用分支。配置上可保护关键分支,遵循命名规范。
27 7
|
6天前
|
存储 缓存 Java
图解Git——远程分支《Pro Git》
远程分支是 Git 中用于管理分布式协作的关键概念。远程引用指向远程仓库中的分支和标签,常用 `git ls-remote` 或 `git remote show` 查看。日常开发中,通常使用远程跟踪分支(如 `origin/main`)与远程分支交互,简化远程仓库状态的管理和使用。远程跟踪分支记录远程分支的状态,但本身只读。
21 6
|
3月前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
162 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
3月前
|
开发工具 git 开发者
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
本文通过具体操作和截图,详细讲解了如何在Git中解决分支冲突问题,包括如何识别冲突、手动解决冲突代码、提交合并后的代码,以及推送到远程分支。
747 3
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
|
4月前
|
缓存 开发工具 git
Git创建分支以及合并分支
在Git中,创建分支使用`git branch [branch_name]`,切换分支使用`git checkout [branch_name]`。修改文件后,通过`git add [file]`添加到暂存区,然后`git commit`提交到本地仓库。如果是新建分支的第一次推送,使用`git push origin [branch_name]`推送到远程仓库,之后可以简化为`git push`。合并分支时,使用`git merge [branch_name]`将指定分支的更改合并到当前分支。
124 2
Git创建分支以及合并分支
|
3月前
|
开发工具 git
Git分支使用总结
Git分支使用总结
61 1
|
4月前
|
测试技术 开发工具 git
掌握 Git 分支策略:提升你的版本控制技能
在现代软件开发中,版本控制至关重要,Git 作为最流行的分布式版本控制系统,其分支管理策略对于高效协作和代码维护尤为重要。本文介绍了几种常用的 Git 分支策略,包括主线开发模型、功能分支模型、Gitflow 工作流和 Forking 工作流,并探讨了如何根据项目需求选择合适的分支模型。通过保持 `master` 分支稳定、及时合并清理分支、使用命名规范、利用 Pull Request 进行代码审查及自动化测试等最佳实践,可以显著提升团队协作效率和软件质量。掌握这些策略将帮助开发者更好地管理代码库,加快开发流程。
|
4月前
|
存储 Linux 开发工具
Git基础命令,分支,标签的使用【快速入门Git】
本文详细介绍了Git版本控制系统的基础概念和常用命令,包括工作区、暂存区和版本库的区别,文件状态的变化,以及如何进行文件的添加、提交、查看状态、重命名、删除、查看提交历史、远程仓库操作和分支管理,还涉及了Git标签的创建和删除,旨在帮助读者快速入门Git。
Git基础命令,分支,标签的使用【快速入门Git】
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等