Git源码管理

news2024/12/24 9:22:51
参考视频:16-git的日志以及版本管理_哔哩哔哩_bilibili

参考博客:Git && Docker 学习笔记-CSDN博客

目录

简介

个人操作初始化

初始化git目录

查看生成的git目录文件

配置git工作目录的用户信息

查看工作区的状态,生成文件的状态

添加文件到暂存区、仓库区

仓库区的版本回退和恢复

暂存区回退到工作区

工作区及暂存区修改的撤销

远程仓库克隆到本地初始化

远程仓库的文件创建与上传及信息查询

Git 多人操作

多人协助冲突的发生及解决

标签

分支操作


简介

当前最先进的分布式版本控制系统,作用于源代码管理,方便多人协同开发,便于版本控制

个人操作初始化
初始化git目录

git init

root@pass:/home/pass/Desktop/mytest# git init          初始化目录生成 .git目录
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint:   git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint:   git branch -m <name>
Initialized empty Git repository in /home/pass/Desktop/mytest/.git/

查看生成的git目录文件

ll         查看隐藏目录命令

root@pass:/home/pass/Desktop/mytest# ll         查看隐藏目录命令ll
total 12
drwxr-xr-x 3 root root 4096  3月  1 20:00 ./
drwxr-xr-x 4 pass pass 4096  3月  1 20:00 ../
drwxr-xr-x 7 root root 4096  3月  1 20:00 .git/      以点开头的目录系统不可见
root@pass:/home/pass/Desktop/mytest# cd .git/
root@pass:/home/pass/Desktop/mytest/.git# ls
branches  config  description  HEAD  hooks  info  objects  refs

配置git工作目录的用户信息

git config user.name pass    用户姓名

git config user.email pass@qq.com  用户邮件

root@pass:/home/pass/Desktop/mytest/.git# git config user.name pass    用户姓名
root@pass:/home/pass/Desktop/mytest/.git# git config user.email pass@qq.com  用户邮件
root@pass:/home/pass/Desktop/mytest/.git# cat config     查看用户信息
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[user]
        name = pass
        email = pass@qq.com

查看工作区的状态,生成文件的状态

git status      查看当前状态

root@pass:/home/pass/Desktop/mytest# git status      查看当前状态
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)
root@pass:/home/pass/Desktop/mytest# touch file      工作区创建文件
root@pass:/home/pass/Desktop/mytest# git status
On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        file

nothing added to commit but untracked files present (use "git add" to track)

添加文件到暂存区、仓库区

git add file                             添加文件file到暂存区 "."当前全部文件

git commit -m 'first commit'   提交到仓库[参数-m 备注信息]

git log                                    查看提交日志

root@pass:/home/pass/Desktop/mytest# git add file   添加文件file 到暂存区"."当前全部文件
root@pass:/home/pass/Desktop/mytest# git status     查看当前状态
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   file

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        me

root@pass:/home/pass/Desktop/mytest# git commit -m 'first commit'   提交到仓库[-m 备注]
[master (root-commit) 474ca08] first commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 file
root@pass:/home/pass/Desktop/mytest# git status
On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        me

nothing added to commit but untracked files present (use "git add" to track)
root@pass:/home/pass/Desktop/mytest# git log                            查看日志
commit 474ca0871818584972749d6b84d2d814825d8b2f (HEAD -> master)
Author: pass <pass@qq.com>
Date:   Fri Mar 1 20:08:06 2024 +0800

    first commit

仓库区的版本回退和恢复

回退版本

  • HEAD   当前最新版本
  • HEAD^  当前最新版本的前一个版本
  • HEAD^^ 当前最新版本的前两个版本,依次类推
  • HEAD~1 当前最新版本的前一个版本
  • HEAD~10 当前版本的前10个版本,依次类推

eg: 

git reset  --hard  HEAD~    回退到上一个版本

git reset  --hard  版本号     回退到指定的版本

git reflog                             查看所有的版本记录

root@pass:/home/pass/Desktop/mytest# git reflog   查看所有的版本记录
c9097f1 (HEAD -> master) HEAD@{0}: commit: second commit
474ca08 HEAD@{1}: commit (initial): first commit
root@pass:/home/pass/Desktop/mytest# git reset --hard HEAD^   回退到上一版本
HEAD is now at 474ca08 first commit
root@pass:/home/pass/Desktop/mytest# git log                             查看提交的日志
commit 474ca0871818584972749d6b84d2d814825d8b2f (HEAD -> master)
Author: pass <pass@qq.com>
Date:   Fri Mar 1 20:08:06 2024 +0800

    first commit
root@pass:/home/pass/Desktop/mytest# git reflog
474ca08 (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
c9097f1 HEAD@{1}: commit: second commit
474ca08 (HEAD -> master) HEAD@{2}: commit (initial): first commit
root@pass:/home/pass/Desktop/mytest# git reset --hard c9097f1   回退到第二个版本
HEAD is now at c9097f1 second commit

暂存区回退到工作区

git reset HEAD [file]

root@pass:/home/pass/Desktop/mytest# git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   learn.txt
        new file:   me

root@pass:/home/pass/Desktop/mytest# git reset HEAD learn.txt
root@pass:/home/pass/Desktop/mytest# git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   me

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        learn.txt

工作区及暂存区修改的撤销

git checkout learn.txt   撤销工作区及暂存区的修改

root@pass:/home/pass/Desktop/mytest# git status   暂存区的文件learn.txt
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   learn.txt
        new file:   me

root@pass:/home/pass/Desktop/mytest# echo 888 >> learn.txt  修改工作区的文件
root@pass:/home/pass/Desktop/mytest# cat learn.txt
666
999
888
root@pass:/home/pass/Desktop/mytest# git checkout learn.txt   撤销工作区及暂存区的修改
Updated 1 path from the index
root@pass:/home/pass/Desktop/mytest# cat learn.txt
666
999

远程仓库克隆到本地初始化

git clone git@github.com:past-plus/learn_test.git

root@pass:/home/pass/remote_learn# git clone git@github.com:past-plus/learn_test.git
Cloning into 'learn_test'...   克隆远程仓库到本地
warning: You appear to have cloned an empty repository.
root@pass:/home/pass/remote_learn# cd learn_test/
root@pass:/home/pass/remote_learn/learn_test# ll
total 12
drwxr-xr-x 3 root root 4096  3月  1 21:24 ./
drwxr-xr-x 3 root root 4096  3月  1 21:24 ../
drwxr-xr-x 7 root root 4096  3月  1 21:24 .git/
root@pass:/home/pass/remote_learn/learn_test# cd .git/
root@pass:/home/pass/remote_learn/learn_test/.git# ls    远程仓库的git配置
branches  config  description  HEAD  hooks  info  objects  refs
root@pass:/home/pass/remote_learn/learn_test/.git# cat config   远程仓库的配置信息
[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = git@github.com:past-plus/learn_test.git
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
        remote = origin
        merge = refs/heads/main
root@pass:/home/pass/remote_learn/learn_test# git config user.name pass   配置用户信息
root@pass:/home/pass/remote_learn/learn_test# git config user.eamil pass@qq.com

远程仓库的文件创建与上传及信息查询

git add .   提交到暂存区

git status  查看当前状态

git commit -m 'test and learn'  提交到仓库

git push    上传到远程仓库

root@pass:/home/pass/remote_learn/learn_test# touch test.py learn.py  创建文件
root@pass:/home/pass/remote_learn/learn_test# git add .   提交到暂存区
root@pass:/home/pass/remote_learn/learn_test# git status  查看当前状态
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
        new file:   learn.py
        new file:   test.py

root@pass:/home/pass/remote_learn/learn_test# git commit -m 'test and learn'  提交到仓库
[main (root-commit) b7588d1] test and learn
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 learn.py
 create mode 100644 test.py
root@pass:/home/pass/remote_learn/learn_test# git push    上传到远程仓库
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 232 bytes | 232.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:past-plus/learn_test.git
 * [new branch]      main -> main
root@pass:/home/pass/remote_learn/learn_test# vim test.py  更新文件信息,需要再次上传
root@pass:/home/pass/remote_learn/learn_test# git commit -m 'test modified'
On branch main
Your branch is up to date with 'origin/main'.

Changes 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:   test.py

no changes added to commit (use "git add" and/or "git commit -a")
root@pass:/home/pass/remote_learn/learn_test# git add .
root@pass:/home/pass/remote_learn/learn_test# git commit -m 'test modified'
[main 9d0f8f9] test modified
 1 file changed, 2 insertions(+)
root@pass:/home/pass/remote_learn/learn_test# git status
On branch main
Your branch is ahead of 'origin/main' by 1 commit.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean
root@pass:/home/pass/remote_learn/learn_test# git log  查看提交日志
commit 9d0f8f9b493856ec917edd67807ad0676e12da9a (HEAD -> main)
Author: pass <10752095+past_pass@user.noreply.gitee.com>
Date:   Fri Mar 1 21:35:20 2024 +0800

    test modified

commit b7588d1d98bf2a1287904610bff4d92397393440 (origin/main)
Author: pass <10752095+past_pass@user.noreply.gitee.com>
Date:   Fri Mar 1 21:30:52 2024 +0800

    test and learn
root@pass:/home/pass/remote_learn/learn_test# git reflog  查看历史版本
9d0f8f9 (HEAD -> main) HEAD@{0}: commit: test modified
b7588d1 (origin/main) HEAD@{1}: commit (initial): test and learn
root@pass:/home/pass/remote_learn/learn_test# git push   提交到远程仓库
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 303 bytes | 303.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:past-plus/learn_test.git
   b7588d1..9d0f8f9  main -> main

 运行结果:

Git 多人操作

git commit -am 'xxxx'    参数a 表示add添加到暂存区

git pull                           拉取远程仓库到工作区

员工a的操作

root@pass:/home/pass/gitee_test/test_a# git config user.name 'a'  配置用户信息
root@pass:/home/pass/gitee_test/test_a# git config user.name 'a@qq.com'
root@pass:/home/pass/gitee_test/test_a# touch test.py
root@pass:/home/pass/gitee_test/test_a# git add .
root@pass:/home/pass/gitee_test/test_a# git status

root@pass:/home/pass/gitee_test/test_a# git commit -m 'test commit first'  提交到仓库
[master (root-commit) 7bc421c] test commit first
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.py
root@pass:/home/pass/gitee_test/test_a# git push    上传到远程仓库
Username for 'https://gitee.com': past_pass
Password for 'https://past_pass@gitee.com':
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 226 bytes | 226.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/past_pass/test.git
 * [new branch]      master -> master

员工b

root@pass:/home/pass/gitee_test/test_b# git config user.name 'b'
root@pass:/home/pass/gitee_test/test_b# git config user.email 'b@qq.com'
root@pass:/home/pass/gitee_test/test_b# git pull
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 206 bytes | 206.00 KiB/s, done.
From https://gitee.com/past_pass/test
 * [new branch]      master     -> origin/master
root@pass:/home/pass/gitee_test/test_b# ls
test.py

多人协助冲突的发生及解决

造成的原因: 多人修改同一份代码,需要先拉取最新的代码修改,否则会造成冲突

员工a

root@pass:/home/pass/gitee_test/test_a# echo 'echo "git learn"'>>learn.py
root@pass:/home/pass/gitee_test/test_a# cat learn.py
echo "learn"
echo "git learn"
root@pass:/home/pass/gitee_test/test_a# git commit -am 'update learn'
[master cda86ba] update learn
 1 file changed, 1 insertion(+)
root@pass:/home/pass/gitee_test/test_a# git push

员工b[没有pull拉取远程仓库的代码而是直接在本地进行修改上传造成冲突]

root@pass:/home/pass/gitee_test/test_b# cat learn.py
echo "learn"
echo "xxx"
root@pass:/home/pass/gitee_test/test_b# git commit -am 'update file'

root@pass:/home/pass/gitee_test/test_b# git push

➜  git:(test) git pull origin test
 * branch              test       -> FETCH_HEAD
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint:
hint:   git config pull.rebase false  # merge (the default strategy)
hint:   git config pull.rebase true   # rebase
hint:   git config pull.ff only       # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.

标签
  • 当一个大版本完成之后,需要打一个标签,记录大版本备份代码

git tag -a v1.0(标签名) -m 'version1.0'(描述) 本地打标签

git push origin v1.0(标签名)                                推送标签到远程仓库

root@pass:/home/pass/gitee_test/test# git commit -am 'commit learn file'
[master 62eda34] commit learn file
 1 file changed, 1 insertion(+), 1 deletion(-)
root@pass:/home/pass/gitee_test/test# git tag -a v1.0 -m 'version1.0'
root@pass:/home/pass/gitee_test/test# git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 278 bytes | 139.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Powered by GITEE.COM [GNK-6.4]
To https://gitee.com/past_pass/test.git
   e1c4aef..62eda34  master -> master
root@pass:/home/pass/gitee_test/test# git push origin v1.0

 运行结果:

分支操作

git branch                         查看当前分支

git checkout -b test          创建并切换分支test

git checkout master         切换主分支master

git merge test                   融合分支test到主支master

root@pass:/home/pass/gitee_test/test# git branch
* master
root@pass:/home/pass/gitee_test/test# git checkout -b test
Switched to a new branch 'test'
root@pass:/home/pass/gitee_test/test# git branch
  master
* test

root@pass:/home/pass/gitee_test/test# git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
root@pass:/home/pass/gitee_test/test# git branch
* master
  test

root@pass:/home/pass/gitee_test/test# git merge test
Already up to date.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1482620.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Nacos环境搭建 -- 服务注册与发现

为什么需要服务治理 在未引入服务治理模块之前&#xff0c;服务之间的通信是服务间直接发起并调用来实现的。只要知道了对应服务的服务名称、IP地址、端口号&#xff0c;就能够发起服务通信。比如A服务的IP地址为192.168.1.100:9000&#xff0c;B服务直接向该IP地址发起请求就…

Linux网络编程——网络基础

Linux网络编程——网络基础 1. 网络结构模式1.1 C/S 结构1.2 B/S 结构 2. MAC 地址3. IP地址3.1 简介3.2 IP 地址编址方式 4. 端口4.1 简介4.2 端口类型 5. 网络模型5.1 OSI 七层参考模型5.2 TCP/IP 四层模型 6. 协议6.1 简介6.2 常见协议6.3 UDP 协议6.4 TCP 协议6.5 IP 协议6…

05 OpenCV图像混合技术

文章目录 理论算子示例 理论 其中 的取值范围为0~1之间 算子 addWeighted CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2, double beta,double gamma, OutputArray dst, int dtype -1 ); 参数1&#xff1a;输入图像Mat …

进程操作(Win32, C++)

CProcessUtils.h #pragma once#include <wtypesbase.h> #include <tchar.h> #include <vector> #include <map> #include <string>#ifdef _UNICODE using _tstring std::wstring; #else using _tstring std::string; #endif// 进程信息 typed…

element-plus表格合并

要实现这样的表格&#xff0c; 怎么做呢&#xff1f; 甚至是这种三级的呢&#xff1f; 官网的案例也是通过这个方法进行配置的&#xff0c;也就是说表格长什么样&#xff0c;关键在怎么处理的方法上。 这是官网的方法&#xff0c;可参考拓展&#xff1a; const arraySpanMeth…

SLAM ORB-SLAM2(21)基础矩阵的计算和评分

SLAM ORB-SLAM2&#xff08;21&#xff09;基础矩阵的计算和评分 1. 前言2. 基础矩阵2.1. 对级约束2.2. 推导2.3. 计算原理 3. ComputeF214. CheckFundamental 1. 前言 在 《SLAM ORB-SLAM2&#xff08;20&#xff09;查找基础矩阵》 中了解到 查找基础矩阵主要过程&#xff1…

nginx 配置浏览器不缓存文件 每次都会从服务器 请求新的文件

目录 解决问题方法说明 测试html环境js环境第一步然后修改内容 打开带有js缓存的页面强制刷新 配置nginx 每次打开页面都会重新请求index.js 文件重启nginx再次修改index.js 总结设置为全局 解决问题 适用于实时更新数据的&#xff0c;网页 可以让用户每次都是重新请求&#x…

《从0开始搭建实现apollo9.0》系列三 CANBUS模块解读

二、CANBUS代码 1、canbus模块的软件架构如下&#xff1a; 主要输入输出 输入&#xff1a;apollo::control::ControlCommand | 控制指令 输出&#xff1a; /apollo/chassis | apollo::canbus::Chassis | 车辆底盘信息接口数据&#xff0c;包括车辆速度、方向盘转角、档位、底盘…

Vue Html中插入本地视频(Video 标签)

在 Vue 中插入本地视频可以通过使用标签来实现。你可以将视频文件放在你的项目中的合适位置&#xff08;比如assets文件夹&#xff09;&#xff0c;然后在 Vue 组件中引用这个视频文件。html同理 首先&#xff0c;在你的 Vue 项目中的assets文件夹下放入你的视频文件&#xff…

兼容性比较好的浏览器推荐(2023手机浏览器排名)

浏览器在我们日常工作生活占据着重要的位置。浏览器是电脑的必备软件&#xff0c;也是手机端不可缺少的软件之一。如果你想要下载浏览器&#xff0c;却不知道哪个浏览器最好用&#xff0c;那么就看看本篇文章。下文给大家推荐2023年最热门、好用的手机浏览器&#xff0c;排行不…

计算机网络【网络安全】

计算机网络——网络安全 一、网络安全问题概述 网络安全威胁 网络安全面临两大类威胁&#xff0c;被动攻击和主动攻击 被动攻击 指攻击者从网络上窃听他人的通信内容&#xff0c;通常把这类攻击称为截获。 主动攻击 篡改 攻击者故意篡改网络上传送的报文 恶意程序 拒绝服…

java实现图片转pdf,并通过流的方式进行下载(前后端分离)

首先需要导入相关依赖&#xff0c;由于具体依赖本人也不是记得很清楚了&#xff0c;所以简短的说一下。 iText&#xff1a;PDF 操作库&#xff0c;用于创建和操作 PDF 文件。可通过 Maven 或 Gradle 引入 iText 依赖。 MultipartFile&#xff1a;Spring 框架中处理文件上传的类…

day08_分类品牌管理商品规格管理商品管理

文章目录 1 分类品牌管理1.1 菜单添加1.2 表结构介绍1.3 页面制作1.4 品牌列表加载1.4.1 后端接口BrandControllerBrandServiceBrandMapperBrandMapper.xml 1.4.2 前端对接brand.jscategoryBrand.vue 1.5 分类数据加载1.6 列表查询1.6.1 需求说明1.6.2 后端接口需求分析Categor…

软考基础知识2

1.DMA控制方式&#xff1a;直接内存存取。数据在内存与I/O设备间直接成块传送&#xff0c;不需要CPU的任何干涉&#xff0c;由DMA硬件直接执行完成。 例题&#xff1a; 2.程序计数器总是存下一个指令的地址。 例题&#xff1a; 3.可靠度的计算&#xff1a; 例题&#xff1a…

低碳策略全都有!EI论文:计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度程序代码!

适用平台&#xff1a;MatlabYalmipCplex 参考文献&#xff1a;《计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度》-电网技术 程序建立了碳交易市场下的计及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度模型&#xff0c;鉴于该模型具有高维非线性特点&#xff0c;求…

蓝桥杯算法题汇总

一.线性表&#xff1a;链式 例题&#xff1a;旋转链表 二.栈&#xff1a; 例题&#xff1a;行星碰撞问题 三.队列 三.数组和矩阵 例题&#xff1a;

亿道信息轻工业三防EM-T195,零售、制造、仓储一网打尽

厚度仅10.5mm&#xff0c;重量仅0.65千克的EM-T195&#xff0c;其紧凑而纤薄的设计为以往加固型平板带来了全新的轻薄概念。尽管设计时尚、轻薄&#xff0c;但经过军用认证的强固性仍然能够承受所有具有挑战性的环境条件。随身携带无负担的轻便性加上抗震功能使其成为餐厅、酒店…

Spring Initializer环境问题

1.基于jdk8与本地 环境准备 1)下载jdk8并安装 2&#xff09;下载maven 3.6.3并解压放入D盘maven目录下&#xff0c;去掉外层 设置阿里源 打开settings.xml,在mirrors标签之内增加&#xff0c;注意粘贴后</id>中的/有可能被删掉&#xff0c;要自己补上 <mirror>&l…

敏捷开发模型:一种灵活、协作和持续的软件开发方法

敏捷开发模型&#xff1a;一种灵活、协作和持续的软件开发方法 引言 在软件开发领域&#xff0c;随着市场需求的不断变化和技术的迅速发展&#xff0c;传统的瀑布模型逐渐暴露出其局限性。为了应对这些挑战&#xff0c;敏捷开发模型应运而生。敏捷开发模型强调灵活、协作和持…

Java基于springboot的厨艺交流平台的设计与实现代码

摘 要 使用旧方法对厨艺交流信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在厨艺交流信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。 这次开发的厨艺交流平台功…