2023 最新 Git 分布式版本控制系统介绍和下载安装使用教程

Git 基本概述

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。

集中式和分布式的区别?

最常见的集中式版本控制系统是SVN,版本库是集中放在中央处理器中的,而干活的时候,用的都是自己电脑,所以首先要从中央服务器那里得到最新的版本,然后开始干活,干完活后,需要把自己做完的活推送到中央服务器。而且集中式版本控制系统是必须联网才能工作的,一旦断网,所有人都干不成活了,可想而知,集中式版本控制系统的局限性有多大。

Git是目前世界上最流行的分布式版本控制系统,它没有中央处理器,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上,随时都可以将自己在工作区间做的修改提交到本地仓库,最后将自己的本地版本仓库推动到远程版本仓库进行合并,效率可想而知是可控的贼高。

GitSVN
核心区别分布式集中式
存储方式按元数据方式存储按文件方式存储
分支Git 必杀技能,将 Git 从版本控制系统的家族中区分出来版本控制系统中的另外一个目录
全局版本号Git 没有(目前 Git 跟 SVN 缺少的最大特征)SVN 有全局版本号
内容完整性Git 内容存储使用的是SHA-1哈希算法,确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏在这方面 SVN 性能是低于 Git
安全性Git 每个分支都有一个完整的版本库,某个分支的电脑坏掉了,不要紧可以随便从别人那里赋值一份就可了SVN 版本控制系统的中央服务器一旦挂掉,所有人 all 都么的活干了

版本控制系统

版本控制是管理信息修改的艺术,他是一个开发者最重要的工具之一,由于开发者经常性的修改代码,如果不做出一定的版本控制仅靠注释掉或者备份的形式进行,那么在经过一段时间后,先不说是否能记住更改的地方,能不能还原到想要的版本都是非常困难的。想象一下,一个高达几十上百人的开发团队并行进行工作,需要经常性的同时处理同一个文件,如果没有一定的版本控制机制,将会是怎样的混乱情况。

软件开发工作往往是多人协同作业,版本控制系统可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。并行开发中最常见的不同版本软件的错误 (Bug) 修正问题也可以通过版本控制中分支与合并的方法有效地解决。

版本控制优点

在进行软件开发时或者一些需要不断迭代的文档编写时出现下图这种情况,不仅占用磁盘空间,而且难以进行管理,很难知道每个版本进行哪些修改,另外若是在关键时刻电脑突然死机,这将是灾难性的,所以一个优雅的备份方式很重要。

在这里插入图片描述
备份是一个版本控制系统(例如 Git)提供的非常好的附带功能。每一个团队成员都会在他的本地有一个完整的项目副本,包括整个项目的历史记录。如果你所依赖的服务器宕机了,或者是你的存储硬盘坏,所有你需要的恢复文件都可以在另外的团队成员的 Git 本地仓库中得到,版本控制系统还会对每个版本进行一定的说明(前提是提交者具有很好的提交习惯),可以根据提交说明知道当前版本较之前的版本有何更改,当然他还提供对比功能,可以对文件进行对比,更加清楚的知道修改的地方。

Git 下载安装

当前节引自于 Git 详细安装教程博客 : Git 详细安装教程

在使用Git前我们需要先安装 Git。Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行。

本篇我们只介绍在 Windows 下安装 Git,Git 各平台安装包下载地址为:http://git-scm.com/downloads

在这里插入图片描述

提示:记得开 VPN 加速器,否则下载速度实在太乌龟了。

选择安装组件

在这里插入图片描述
Check daily for Git for windows updates:是否每天检查更新

Add a Git Bash Profile to Windows Terminal:在 windows 终端窗口 添加 Git Profile 配置信息

在这里插入图片描述
选择开始菜单文件夹
方框内 Git 可改为其他名字,也可点击 “Browse…” 选择其他文件夹或者给"Don’t create a Start Menu folder" 打勾不要文件夹,点击 [next]。
在这里插入图片描述

选择默认的编辑器

Git 安装程序里面内置了 10 种编辑器供你挑选,比如 Atom、Notepad、Notepad++、Sublime Text、Visual Studio Code、Vim 等等,默认的是 Vim ,选择 Vim 后可以直接进行到下一步,但是 Vim 是纯命令行,操作有点难度,需要学习。如果选其他编辑器,则还需要去其官网安装后才能进行下一步。

在这里插入图片描述
设置初始化新项目(仓库)的主干名字

第一种是让 Git 自己选择,名字是 master ,但是未来也有可能会改为其他名字;第二种是我们自行决定,默认是 main,当然,你也可以改为其他的名字。一般默认第一种,点击 [next] 到第七步。

注: 第二个选项下面有个 NEW! ,说很多团队已经重命名他们的默认主干名为 main . 这是因为2020 年非裔男子乔治·弗洛伊德因白人警察暴力执法惨死而掀起的 Black Lives Matter(黑人的命也是命)运动,很多人认为 master 不尊重黑人,呼吁改为 main.

在这里插入图片描述
调整 path 环境变量

在这里插入图片描述

Use Git from Git Bash only 
This is the most cautious choice as your PATH will not be modified at all. You w only be able to use the Git command line tools from Git Bash.
仅从 Git Bash 使用 Git
这是最谨慎的选择,因为您的 PATH 根本不会被修改。您将只能使用 Git Bash 中的 Git 命令行工具。Git from the command line and also from 3rd-party software
(Recommended) This option adds only some minimal Git wrappers to your PATH to avoid cluttering your environment with optional Unix tools.
You will be able to use Git from Git Bash, the Command Prompt and the Windov PowerShell as well as any third-party software looking for Git in PATH.
从命令行以及第三方软件进行 Git
(推荐)此选项仅将一些最小的 Git 包装器添加到PATH中,以避免使用可选的 Unix 工具使环境混乱。
您将能够使用 Git Bash 中的 Git,命令提示符和 Windov PowerShell 以及在 PATH 中寻找 Git 的任何第三方软件。Use Git and optional Unix tools from the Command Prompt 
Both Git and the optional Unix tools will be added to your PATH.
Warning: This will override Windows tools like "find"and "sort". Only use this option if you understand the implications.
使用命令提示符中的 Git 和可选的 Unix 工具
Git 和可选的 Unix 工具都将添加到您的 PATH 中。
警告:这将覆盖 Windows 工具,例如 "find" and "sort". 仅在了解其含义后使用此选项。

第一种是仅从 Git Bash 使用 Git。这个的意思就是你只能通过 Git 安装后的 Git Bash 来使用 Git ,其他的什么命令提示符啊等第三方软件都不行。

第二种是从命令行以及第三方软件进行 Git。这个就是在第一种基础上进行第三方支持,你将能够从 Git Bash,命令提示符(cmd) 和 Windows PowerShell 以及可以从 Windows 系统环境变量中寻找 Git 的任何第三方软件中使用 Git。推荐使用这个。

第三种是从命令提示符使用 Git 和可选的 Unix 工具。选择这种将覆盖 Windows 工具,如 “ find 和 sort ”。只有在了解其含义后才使用此选项。一句话,适合比较懂的人折腾。

选择 SSH 执行文件

使用捆绑的 OpenSSH:这使用的 ssh.exe 是 Git 自带的
在这里插入图片描述

选择 HTTPS 后端传输

使用 OpenSSL 库 服务器证书将使用 ca-bundle.crt 文件进行验证。
在这里插入图片描述
配置行尾符号转换
在这里插入图片描述

P1 签出 Windows 样式,提交 Unix 样式的行结尾。
P2 按原样签出,提交Unix样式的行结尾。
P3 按原样签出,按原样提交。

配置终端模拟器和 Git Bash 使用
在这里插入图片描述
建议选择第一种,MinTTY 3功能比 cmd 多,cmd 只不过 比 MinTTY 更适合处理 Windows 的一些接口问题,这个对 Git 用处不大,除此之外 Windows 的默认控制台窗口(cmd)有很多劣势,比如 cmd 具有非常有限的默认历史记录回滚堆栈和糟糕的字体编码等等。

相比之下,MinTTY 具有可调整大小的窗口和其他有用的可配置选项,可以通过右键单击的工具栏来打开它们 git-bash 。

选择默认的 “git pull” 行为在这里插入图片描述
git pull 就是获取最新的远程仓库分支到本地,并与本地分支合并。

选择凭证帮助程序
在这里插入图片描述
第一个选项是提供登录凭证帮助的,Git 有时需要用户的凭据才能执行操作;例如,可能需要输入用户名和密码才能通过 HTTP 访问远程存储库(GitHub,GItLab 等等)。

配置额外选项
在这里插入图片描述
启用文件系统缓存就是将批量读取文件系统数据并将其缓存在内存中以进行某些操作,可以显著提升性能。这个选项默认开启。

启用符号链接 ,符号链接是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用,类似于 Windows 的快捷方式,不完全等同 类Unix(如 Linux) 下的 符号链接。因为该功能的支持需要一些条件,所以默认不开启。

配置实验性选项
在这里插入图片描述
这是实验性功能,可能会有一些小错误之类的,建议不用开启。

开始安装 Git
在这里插入图片描述

安装成功 Git

Git Bash、Git CMD、Git FAQs、Git GUI、Git Release Note

在这里插入图片描述

使用 Git Bash

Git Bash 是基于CMD的,在CMD的基础上增添一些新的命令与功能,平时主要用这个,功能很丰富。

在这里插入图片描述
Git Bash 常用命令

命令说明
git init初始化 git,只有初始化了以后才可以使用 git 相关命令。
git clone获取远程项目,并下载到本地。远程库的地址在 GITHUB 项目中会有提供。
git status查看本地修改与服务器的差异。
git add将这些差异文件添加,这样就可以提交了。
git commit –m“这里是注释” 提交更改到服务器。
git checkout master更改到 master 库。
git pull将服务器最新的更改获取到本地。
git merge local master将本地的 local 合并到远程的 master 上。
git push origin master正式提交到远程的 master 服务器上。

初始化 Git

Administrator@DESKTOP-AIMG6N1 MINGW64 ~
$ git init
Initialized empty Git repository in C:/Users/Administrator/.git/

在这里插入图片描述

获取 SSH 密钥

一路Enter(确认)就可以了

$ ssh-keygen -t rsa -C xxxxxx@qq.com
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):
Created directory '/c/Users/Administrator/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/Administrator/.ssh/id_rsa
Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:+f8H6EU5Je+ZNdrhUwOk2YsZjq+SpcUENDm1oKSyeLs xxxxxx@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|     ..+o.  ..   |
|    o .+o . +.. .|
| . . .  o. + ..= |
|. o      oo + =++|
|...     S. + ++oO|
| . .     =. ..o*.|
|  .     = .o . ..|
|   .   +  ...   .|
|  E     ..  .... |
+----[SHA256]-----+

在这里插入图片描述
报错解决: https://blog.csdn.net/weixin_43888891/article/details/112429980

绑定ssh密钥

现在你就需要登录到你的 GitHub 上边添加这个密匙
在这里插入图片描述
Setting SSH 链接地址:https://github.com/settings/ssh/new

将整个id_rsa.pub内容复制,添加成功结果如下:
在这里插入图片描述

然后回到 Git bash 输入:ssh -T git@github.com 来检查是否成功绑定。如果输入之后选择 yes 出来是这样说明就成功了。

Administrator@DESKTOP-AIMG6N1 MINGW64 ~ (master)
$ ssh -T git@github.com
Hi wristwaking! You've successfully authenticated, but GitHub does not provide shell access.

其他设置

接下来还需要简单的设置一些东西

git config --global user.name “git账号”
git config --global user.email “git邮箱,注册时候的邮箱”

通过以上命令基本可以完成账号的设置。但是–global代表什么意思?

git config --local		仓库级别的设置,该设置只对当前仓库适用
git config --global		设置当前用户下的全局用户名
git config --system		设置系统级的用户名,对所有用户适用

代码克隆 clone

下面就要将你的库克隆下来到本地电脑中,方便以后进行上传代码。在库创建完成之后 会有一个网址出现在网页中,这个地址就是代码地址。git clone 命令会用的到。

在这里插入图片描述
接下来就开始选择文件存储地方了。

在这里插入图片描述

git clone 地址(这个地址就是刚刚创建的库那个页面上代码地址)
Administrator@DESKTOP-AIMG6N1 MINGW64 ~/Desktop/HackerWaking/csdn (master)
$ git clone git@github.com:wristwaking/csdn.git
Cloning into 'csdn'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.

注意:在执行命令过程有时候会让你输入账号密码啥的,这个不要输错了就行!

测试提交文件

打开本机刚才创建文件夹的目录,然后在其中创建一个任意格式,任意名称的文件。

在这里插入图片描述
然后在这个文件里面右键 git bash 进黑框框
git add我们新增的文件

git add . (注意 add 与 ‘.’ 之间有一个空格,此处为添加当前文件夹的全部内容)
git add xxx (此处为添加当前文件下名为 xxx 的文件)

Administrator@DESKTOP-AIMG6N1 MINGW64 ~/Desktop/HackerWaking/csdn/csdn (main)
$ git add project.py

之后输入然后 git commit -m “备注” 引号内的内容可以随意改动,这个语句的意思是 给你刚刚上传的文件一个备注,方便查找记忆而已。

$ git commit -m "first test"
[main 514d27d] first test1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 project.py

然后在输入git push origin master

$ git push origin master
error: src refspec master does not match any
error: failed to push some refs to 'github.com:wristwaking/csdn.git'

问题的内容是:就是仓库为空

错误:SRC ReFSPEC主控器不匹配任何。
错误:未能将某些引用推到'github.com:wristwaking/csdn.git’

这边的原因:这边的主分支是 main,不是 master

在这里插入图片描述

解决方案:直接 git push origin main

$ git push origin main

branch 分支

Git 分支是指在版本控制系统 Git 中,用于并行开发和管理代码的一种功能。在 Git 中,每个分支都相当于一个独立的开发线,可以在不影响主线开发的情况下进行代码的修改和提交。

通过创建分支,可以在不影响主分支的情况下,开展新功能的开发、修复bug以及进行实验性的改动。在每个分支上可以进行独立的提交和合并操作,这样可以避免多人同时对同一份代码进行修改引发的冲突问题。

常见的 Git 分支有主分支(通常是 master 或 main)和特性分支。主分支用于稳定的发布版本,特性分支则用于开发新功能或修复 bug。分支间可以进行合并(merge)操作,将特性分支的修改合并到主分支中。

Git分支的使用可以提高多人协作开发的效率,并且有助于保留开发历史和追踪代码变更。

查看 branch 分支

使用如下的命令,可以查看当前Git仓库中所有的分支列表:

Administrator@DESKTOP-AIMG6N1 MINGW64 ~/Desktop/HackerWaking/csdn/csdn (main)
$ git branch
* main  ## 注意:分支前面的*表示当前所处的分支

创建 branch 分支

使用如下的命令,可以基于当前分支,创建一个新的分支,此时,新分支中的代码和当前分支完全一样:(所以开发时我们需要在主分支上创建新分支)

git branch 分支名称

切换 branch 分支

使用如下的命令,可以切换到指定的分支上进行开发:

git checkout 分支名称

在这里插入图片描述

## -b 表示创建一个新分支
## checkout表示切换到刚才新建的分支上
git checkout -b 分支名称

删除 branch 分支

当把功能分支的代码合并到 master 主分支上以后,就可以使用如下的命令,删除对应的功能分支:

git branch -d 分支名称

合并 branch 分支

功能分支的代码开发测试完毕之后,可以使用如下的命令,将完成后的代码合并到 master主分支上:

1 切换到 master 分支
2 git checkout master
3 在 master 分支上运行 git merge 命令,将要合并分支的代码合并到 master分支
4 git merge 分支名称

将本地分支推送到远程仓库

如果是第一次将本地分支推送到远程仓库,需要运行如下的命令:

# -u表示把本地分支和远程分支进行关联,只在第一次推送的时候需要带-u 参数
git push -u 远程仓库的别名 本地分支名称:远程分支名称# 实际案例:
git push -u origin payment: pay# 如果希望远程分支的名称和本地分支名称保持一致,可以对命令进行简化:
git push -u origin payment

Github 注册

相对来说注册还是很简单的,只需要一个邮箱即可,邮箱写qq邮箱就行了,假如以后忘记密码了,是可以靠邮箱来找回密码的。

Github 官方登录页: https://github.com/login

官网全是英文的,目前的话,暂未发现有中文版的,对于英语不好的同学建议使用谷歌浏览器,谷歌浏览器可以翻译网页变为中文使用起来十分方便。

创建新的库 create a new repository

这里无非需要注意的就是库分为两种,分为了公有的私有的,上面解释的很清楚了,大家自行选择即可。

在这里插入图片描述

创建完成

在创建完成自己的库之后,下面就要让自己的电脑克隆一个自己所创建的库,方面自己电脑上的代码同步到GitHub你所创建的库当中。为了实现,就需要安装一个软件,Git Bash。

在这里插入图片描述

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

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

相关文章

第15章_瑞萨MCU零基础入门系列教程之Common I2C总线模块

本教程基于韦东山百问网出的 DShanMCU-RA6M5开发板 进行编写,需要的同学可以在这里获取: https://item.taobao.com/item.htm?id728461040949 配套资料获取:https://renesas-docs.100ask.net 瑞萨MCU零基础入门系列教程汇总: ht…

postman和node.js的使用

一 nodejs下载 下载链接: nodejs官网: https://nodejs.org/zh-cn/download 我使用的windows .msi安装方式,双击一直下一步就行 当前安装完成后的版本:1.下载 2.安装步骤 下载完成后,双击安装包,开始安装&…

win10自带wifi共享功能

1、按下【wini】组合键打开windows设置,点击【网络和internet】; 2、按照下图,打开个移动热点,设置名称、密码。

appium+jenkins实例构建

自动化测试平台 Jenkins简介 是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。 前面我们已经开完测试脚本,也使用bat 批处…

hadoop伪分布模式配置

1、修改/usr/local/hadoop/etc/hadoop/core-site.xml和/usr/local/hadoop/etc/hadoop/hdfs-site.xml文件 core-site.xml内容 <configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><descr…

OpenCV(三十三):计算轮廓面积与轮廓长度

1.介绍轮廓面积与轮廓长度 轮廓面积&#xff08;Contour Area&#xff09;是指轮廓所包围的区域的总面积。通常情况下&#xff0c;轮廓面积的单位是像素的平方。 轮廓长度&#xff08;Contour Length&#xff09;又称周长&#xff08;Perimeter&#xff09;&#xff0c;表示轮廓…

C++this指针

本文旨在讲解C中this关键字&#xff0c;以及其相关作用&#xff01; 定义 this 是 C 中的一个关键字&#xff0c;也是一个 const 指针&#xff0c;它指向当前对象&#xff0c;通过它可以访问当前对象的所有成员。 this的介绍 下面来看一下关于this这个关键字的实例&#xff0…

个人能做股票期权吗?个人期权交易开户条件新规

个人投资者是可以交易股票期权的&#xff0c;不过期权交易通常需要投资者具备一定的投资经验和风险承受能力&#xff0c;因为期权交易涉及较高的风险和复杂性&#xff0c;下文为大家介绍个人能做股票期权吗&#xff1f;个人期权交易开户条件新规的内容。本文来自&#xff1a;期…

新版edge浏览器读取谷歌浏览器上的历史记录

上一篇&#xff1a;(3条消息) 新版edge浏览器读取谷歌浏览器上的历史记录_learningbilibili的博客-CSDN博客https://blog.csdn.net/learningbilibili/article/details/123662218 关于上次的读取历史记录的问题是现在的edge浏览器最近的版本更新后出现了每次启动时从 Google Chr…

堆相关例子-最大线段重合问题

问题描述 给定很多线段&#xff0c;每个线段都有两个数[start, end]&#xff0c; 表示线段开始位置和结束位置&#xff0c;左右都是闭区间 规定&#xff1a; 1&#xff09;线段的开始和结束位置一定都是整数值 2&#xff09;线段重合区域的长度必须>1 返回线段最多重合…

【计算机网络】TCP传输控制协议——三次握手

文章目录 握手的流程常考考点 握手的流程 一开始&#xff0c;客户端和服务端都处于CLOSE状态&#xff0c;先是服务端监听某个端口&#xff0c;处于LISTEN状态。然后客户端主动发起连接SYN&#xff0c;之后处于SYN-SEND状态。服务端收到发起的连接&#xff0c;返回SYN&#xff0…

Vue中数据可视化关系图展示与关系图分析

Vue中数据可视化关系图展示与关系图分析 数据可视化是现代Web应用程序的重要组成部分之一&#xff0c;它可以帮助我们以图形的方式呈现和分析复杂的数据关系。Vue.js是一个流行的JavaScript框架&#xff0c;它提供了强大的工具来构建数据可视化应用。本文将介绍如何使用Vue.js…

系统架构设计专业技能 · 计算机组成与结构

现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 系统架构设计高级技能 计算机组成与结构 一、计算机结构1.1 CPU 组成1.2 冯诺依曼…

云备份——服务端客户端联合测试

一&#xff0c;准备工作 服务端清空备份文件信息、备份文件夹、压缩文件夹 客户端清空备份文件夹 二&#xff0c;开始测试 服务端配置文件 先启动服务端和客户端 向客户端指定文件夹放入稍微大点的文件&#xff0c;方便后续测试断点重传 2.1 上传功能测试 客户端自动上传成功…

算法-88.合并两个有序数组-⭐

给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2&#xff0c;另有两个整数 m 和 n &#xff0c;分别表示 nums1 和 nums2 中的元素数目。 请你 合并 nums2 到 nums1 中&#xff0c;使合并后的数组同样按 非递减顺序 排列。 注意&#xff1a;最终&#xff0c;合并后数组…

js中添加屏蔽F12 审查元素、屏蔽开发者工具、屏蔽右键菜单、屏蔽剪切、屏蔽选中操作

在看某个网站时&#xff0c;看到一段话想复制一下&#xff0c;结果复制不了。想打开F12看看元素进行复制&#xff0c;也不行&#xff0c;没有反应。最后通过打开开发者工具看看&#xff0c;结果一打开就跳到about:blank。 看到这操作一脸懵逼&#xff0c;小样的&#xff0c;还有…

【100天精通Python】Day59:Python 数据分析_Pandas高级功能-多层索引创建访问切片和重塑操作,pandas自定义函数和映射功能

目录 1 多层索引&#xff08;MultiIndex&#xff09; 1.1 创建多层索引 1.1.1 从元组创建多层索引 1.1.2 使用 set_index() 方法创建多层索引 1.2 访问多层索引数据 1.3 多层索引的层次切片 1.4 多层索引的重塑 2 自定义函数和映射 2.1 使用 apply() 方法进行自定义函…

mysql之DML的select分组排序

目录 一、创建表employee和department表 1.创建department表 2.创建employee表 3.给employee表格和department表格建立外键 4.给department插入数据 5.给employee表插入数据 6.删除名字为那个的数据 二、分组查询和排序查询&#xff0c;以及对数据的处理&#xff08;av…

悲观锁和乐观锁、缓存

悲观锁&#xff1a; 悲观锁的实现通常依赖于数据库提供的机制&#xff0c;在整个处理的过程中数据处于锁定状态&#xff0c;session的load方法有一个重载方法&#xff0c;该重载方法的第三个参数可以设置锁模式&#xff0c;load(object.class , int id,LockMode.?)&#xff0…

OpenCV实现图像的混合

原理 这其实也是加法&#xff0c;但是不同的是两幅图像的权重不同&#xff0c;这就会给人一种混合或者透明的感觉。 图像混合的计算公式如下: g(x)(1-a)f0(x) af1(x) 通过修改α的值(0→1) &#xff0c;可以实现非常炫酷的混合。 现在我们把两幅图混合在一起。 第一幅图…