超详细图解说明:一个代码仓库如何管理多个项目、且代码提交互不影响。orphan分支的使用

简介: 这篇文章详细图解了如何使用Git的`--orphan`参数创建孤立分支来管理代码仓库中的多个项目,确保不同项目的代码提交互不影响,并提供了解决实际使用中可能遇到的问题的方法。

前言

如何使用代码仓库同时管理多个项目? 我之前写个人项目一般是一个代码仓库管理一套代码、这样随着项目增加、代码仓库就会越来越多。如果是前后端分离的项目,前端一个仓库,后端代码又一个仓库,很不方便管理。之前也写过一篇文章关于一个代码仓库如何管理多个项目,但是那个管理方式有个很大的弊端,在提交代码的时候,所有项目的代码都是提交在一个历史线上。而不是每个项目单独管理

这一篇文章将会彻底解决这个问题、网上我也查看了蛮多方法。感觉写的都不是很详细。我这里不仅会给出详细的方法、还会用实际代码验证。以及代码实战运用可能会遇到的问题。

我这里以GitHub为例

前提

讲解一下今天的主角:orphan

使用参数 --orphan,这个参数的主要作用有两个,一个是拷贝当前所在分支的所有文件,另一个是没有父结点,可以理解为没有历史记录,是一个完全独立背景干净的分支

git checkout --orphan的核心用途是在非新存储库上以类似git init的状态创建分支.

如果没有此功能,您的git分支的 all 将会有一个共同的祖先,即您的最初提交.这是很常见的情况,但绝不是唯一的情况.例如,git允许您将多个独立项目作为单个存储库中的不同分支进行跟踪.

1、创建代码仓库

如果不知如何创建代码仓库、请看我之前写的一篇博客:
一文教会你 如何在Github中创建仓库?

创建好的代码仓库
在这里插入图片描述

2、使用方法

2.1 克隆项目到本地

将本地的项目和远程项目建立练习、也可以通过其它的方式建立练习。这里提供较为简单的方式、直接克隆项目到本地

首先复制项目地址
在这里插入图片描述

将项目克隆到本地的某个位置

git clone 项目地址

在这里插入图片描述

2.2 创建orphan分支

按需创建,我这里需要创建一个 三个分支来单独存放一个项目的后端代码、商家前端、顾客前端。三套代码、所以我要创建三个分支。

总的来说orphan分支的简单使用有以下几个命令:

# 1.创建orphan分支(注意创建了分支必须提交文件到该分支下,否则其实没有创建成功)
git checkout --orphan 分支名
# 2.提交到orphan分支下
git add .
git commit -m"desc"
# 提交三步曲只有这步不一样,需要指定分支
git push origin 分支名(确保一致)
# 3.切换分支,比如切换到golang分支(切换了文件会发生变化,只会显示该分支下的文件)
git checkout golang

我这里演示了创建分支的过程。重点说一下:如果你创建了分支、但是没有提交该分支到远程。你用命令git branch查看分支的时候是看不到刚刚创建的分支。必须提交后才可以、本地创建分支、并且提交后、远程会显示创建的分支的。
用到的一些命令
1、查看分支:git branch. 2、切换分支:git checkout 分支名. 3、添加文件暂存:git add . . 4、提交信息描述:git commit -m '提交信息描述'. 5、提交到远程 git push origin 分支名

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

2.3 远程仓库分支情况

在这里插入图片描述

2.4 将项目代码提交到对应分支

我这里是写好的项目代码、之前是分开放在三个代码仓库、很难维护。这里放到同一个代码仓库。然后将三个项目分别放到对应的代码分支中。
在这里插入图片描述

后端一套代码提交到创建的后端代码分支中保存 过程较为简单、切换为该分支后,将要提交的代码添加到该分支、然后 commit 、push到该分支。具体过程如下:

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

在这里插入图片描述

其他分支代码不会改变
在这里插入图片描述

提交另外一套代码到代码仓库中

提交另外一套代码、要切换分支。git checkout 分支名.
具体提交过程如下、也可以使用git的可视化工具进行操作,将代码提交到远程分支就行。

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

2.5 不同分支互不影响

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

3、遇到的问题

3.1 切换分支后,其它代码不可见?

就当我兴冲冲的打开编辑器查看代码的时候、发现只有当前分支下的代码可见。其它分支的代码则不可见、这就出现一个严重的问题,在进行前后端分离开发的时候,我需要前端和后端工程都打开,现在只能打开一个就不行。具体解决方法看3.2

在这里插入图片描述

切换分支后的情况
在这里插入图片描述

3.2 解决分支不可见问题(克隆某个分支下代码)

我是另外克隆项目到其它位置,然后单独拉取该分支下的代码。这样就可以解决这个问题。同时、也达到了。可以在不克隆整个项目的情况下、单独克隆某个分支下的代码。这样就可以,在代码仓库中,克隆管理多个项目中的某一个项目。

具体过程
步骤:
1、克隆项目到本地(换个位置)
2、拉取指定分支代码

由于远程已经开好分支,本地直接拉下来即可

git checkout -b feature-branch origin/feature-branch    //检出远程的feature-branch分支到本地

在这里插入图片描述
本地只有两个分支,当然你可也可以拉取其它的分支代码到这个目录,但是又变成之前那种情况。只能查看当前分支的代码,其它的看不到。目前我只想到了这个方式、大家有好的方式、可以分享到评论区。

在这里插入图片描述

这样就可以看到不同分支下的代码了、也方便自己修改。

前端项目代码
在这里插入图片描述

后端项目代码
在这里插入图片描述

3.3 Idea文件改动、文件颜色没变

版本控制的一大作用、是方便我们查看项目代码做了那些改动。结果我这里遇到了一点问题、修改代码文件后、文件颜色没有变化。不确定是不是由于之前该项目已经有过版本控制的原因。

解决方法、将版本控制的地址重新加载一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、查看分支代码提交情况

这里后端的历史记录、只会看到当前项目的提交情况。不会关心其它分支的提交情况。
在这里插入图片描述

使用Vscode的插件可以看到的更加明的明显,这里是展示了所有分支的代码提交情况。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、查看远程仓库提交情况

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

6、不同分支代码改变、互不影响

像开发单个工程一样、不需要考虑其它工程代码改变带来的影响。
在这里插入图片描述

这个是之前一个代码仓库管理多个项目、很大的弊端。其中一个项目的代码改变、如果没有及时提交。其它项目提交代码的时候就会将这个未提交的一块提交。而且文件变化带来的影响也是很麻烦。很不利于开发。

在这里插入图片描述

相关文章
|
Shell 程序员 开发工具
码云代码托管平台
码云代码托管平台
|
存储 安全 算法
【BLE】 BLE配对绑定保姆级介绍
实现蓝牙通信安全,除了paring/bonding这种底层方式,用户也可以在应用层去实现相同功能,两者从功能上和安全性上没有本质区别,只不过应用层自己实现的话,需要自己选择密码算法,密钥生成,密钥交换等,如果你不是这方面的专家,你的应用就有可能会存在安全漏洞。设备跟手机绑定成功后,手机再次重连这个设备时,就会自动跳过service discovery过程,换句话说,配对的时候手机会把设备所有服务和characteristic的handle保存下来,二次重连的时候,直接用以前保存的handle值去操作设备。
5914 1
【BLE】 BLE配对绑定保姆级介绍
|
Shell 网络安全 开发工具
Qt实用技巧:QtCreator使用git(gitHub)管理项目代码笔记
Qt实用技巧:QtCreator使用git(gitHub)管理项目代码笔记
Qt实用技巧:QtCreator使用git(gitHub)管理项目代码笔记
|
9月前
|
开发工具 git
解决git push时的错误提示:“error: src refspec master does not match any”
8 .如果确认以上都无误但依然出现该提示,则可能需要重新设置跟踪上游(upstream),通过如下命令:
3864 8
|
存储 前端开发 数据可视化
一文教会你 如何在Github中创建仓库?如何将多个项目放到一个仓库中管理?如何将本地项目上传到GitHub中?
这篇文章详细介绍了如何在GitHub上创建新仓库,以及如何将多个项目整合到一个仓库中进行管理。文章还提供了克隆仓库到本地、使用不同文件夹存放不同项目代码、以及将这些项目提交到远程服务器的步骤和方法。
一文教会你 如何在Github中创建仓库?如何将多个项目放到一个仓库中管理?如何将本地项目上传到GitHub中?
|
12月前
|
网络安全 开发工具 git
Git仓库创建与代码上传指南
本教程介绍了将本地项目推送到远程Git仓库的完整流程,包括初始化本地仓库、添加和提交文件、创建远程仓库、关联远程地址及推送代码。同时,还提供了`.gitignore`配置、分支管理等可选步骤,并针对常见问题(如认证失败、分支不匹配、大文件处理及推送冲突)给出了解决方案。适合初学者快速上手Git版本控制。
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
14181 11
|
测试技术 持续交付 开发工具
《对于大规模的代码项目,如何进行有效的代码管理》
有效管理大规模代码项目至关重要。使用Git等版本控制系统追踪变化;合理组织代码结构;制定统一代码风格;编写详细文档与注释;实施持续集成和自动化测试;执行代码审查;持续优化代码;支持并行开发;强化团队协作;定期备份代码。这些措施能显著提升代码质量和可维护性。
382 11
|
编译器 开发工具 数据安全/隐私保护
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
本文提供了一个关于如何在Gitee上进行多人协作和版本控制的详细教程,包括新建和初始化仓库、克隆仓库、邀请好友共同管理仓库以及注意事项,旨在帮助用户顺利进行代码协作开发。
3499 1
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!

热门文章

最新文章