超详细图解说明:一个代码仓库如何管理多个项目、且代码提交互不影响。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、不同分支代码改变、互不影响

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

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

在这里插入图片描述

相关文章
|
3天前
|
开发工具 git
在Gitflow分支策略中,如何处理分支之间的合并冲突?
在Gitflow分支策略中,如何处理分支之间的合并冲突?
|
4月前
|
项目管理 开发工具 Android开发
三类代码协同模式问题之开发者将远程上游仓库克隆到本地,并在本地创建开发分支问题如何解决
三类代码协同模式问题之开发者将远程上游仓库克隆到本地,并在本地创建开发分支问题如何解决
|
6月前
|
数据可视化 Go 开发工具
cggit 简化 Git 提交、合并、分支偏移小神器,提升开发、修BUG效率!
cggit 简化 Git 提交、合并、分支偏移小神器,提升开发、修BUG效率!
77 0
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
这篇文章是一份详细的GitHub使用教程,介绍了如何在GitHub上创建仓库、创建分支、编辑和发布更改内容、发起拉取请求以及合并分支的操作步骤。
怎样在GitHub上建立仓库、以及怎样实现分支代码的合并。保姆级别的教程
|
4月前
|
Java 开发工具 git
代码协同模式使用问题之AGit-Flow协同模式是如何解决分支评审模式中特性分支过多、混乱的问题的
代码协同模式使用问题之AGit-Flow协同模式是如何解决分支评审模式中特性分支过多、混乱的问题的
|
3月前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之如何确保解决冲突代码是提交到合并的目标分支
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
5月前
|
敏捷开发 Java 测试技术
阿里云云效产品使用问题之多个代码源要进行代码合并,新建步骤代码合并,合并逻辑应该怎么写
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6月前
|
前端开发 数据可视化 开发工具
前端git必备技能,如何合并分支以及出现合并冲突后如何解决
前端git必备技能,如何合并分支以及出现合并冲突后如何解决
117 0
|
6月前
|
存储 缓存 开发工具
Git 拉取合并代码流程和多人协同开发的问题解决方法
Git 拉取合并代码流程和多人协同开发的问题解决方法
275 0
|
11月前
|
运维 测试技术 开发工具
git的分支及标签使用结合全网最详细的情景演示
git的分支及标签使用结合全网最详细的情景演示
310 0