使用Git进行项目版本控制

文章目录

    • 1、什么是Git?
    • 2、安装Git
    • 3、Git汉化
      • 3.1 Git Bash汉化
      • 3.2 Git GUI汉化(了解)
    • 4、快速上手Git基本命令
    • 5、Git是怎么运作的?
    • 6、工作区、暂存区、本地仓库、远程仓库的区别
      • 6.1 工作区
      • 6.2 暂存区
      • 6.3 本地仓库
      • 6.4 远程仓库
      • 6.4 总结
    • 7、 Git具体工作流程
      • 7.1 Git的Clone(克隆)命令与Fetch(提取)命令
      • 7.2 Merge (合并之意)
      • 7.3 Pull命令 (拉取)
      • 7.4 Checkout命令(签出)
      • 7.5 Add命令(添加)
      • 7.6 Commit命令(提交)
      • 7.7 Push命令(推送)
      • 7.8 "Commit and Push"按扭
    • 8、Git上传代码流程
      • 8.1 新建Git仓库
      • 8.2 打开Gitee创建私人令牌
      • 8.3 使用Idea进行代码更新
        • 8.3.1 打开Idea配置Git
        • 8.3.2 添加Gitee账号
        • 8.3.3 模拟项目成员向代码仓库推送代码
        • 8.3.4 Git更新操作(Fetch,Merge)
        • 8.3.5 Git更新操作(Pull)
        • 8.3.6 代码提交(Push)
        • 8.3.7 代码冲突
          • 1. 什么是冲突
          • 2. 冲突的场景
          • 3. 解决冲突
            • 远程模拟场景:
            • 本地模拟情景:
            • 解决代码冲突:
      • 8.4 使用Git命令进行代码更新
        • 8.4.1 先根据8.3.3模拟项目成员向仓库推送代码
        • 8.4.2 新建文件夹
          • 1. 新建文件夹 ---》右击 ---》选择 Git Bash Here
          • 2. 在本地文件夹中初始化Git仓库
          • 3. 克隆一个远程仓库到本地
          • 4. 将文件添加到暂存区
          • 5. 提交代码到本地仓库
          • 6. 进行远程仓库代码拉取
          • 7. 进行代码推送
      • 8.5 Idea分支
        • 1. 新建分支
        • 2. Idea查看分支
        • 3. 推送分支到远程库
        • 4. 分支合并
        • 5. 删除分支
        • 6. 其他操作分支命令
      • 8.6、更多Git命令

1、什么是Git?

GIT,全称是分布式版本控制系统,git通常在编程中会用到,并且git支持分布式部署,可以有效、高速的处理从很小到非常大的项目版本管理。分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本地机器上拷贝一个完整的Git仓库。

本地式 VS 集中式 VS 分布式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GG5ooPy1-1691719294411)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208142837991.png)]

2、安装Git

安装包素材:链接

也可以去官网下载你想要的版本

Git官网

点击图标进行安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3o2M8c68-1691719294413)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208110721176.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6Mr5CjwP-1691719294414)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208110753487.png)]

选择安装路径 —》点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cVRE8Cb6-1691719294414)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208110851537.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lu0v8oQG-1691719294414)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208110909102.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xwyiDCGi-1691719294415)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208110935288.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DQ6fbLQW-1691719294415)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208110950424.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UHOeAEIV-1691719294415)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208111005281.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FGPi1JXp-1691719294415)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208111022526.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ae0Womik-1691719294416)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208111035429.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P4cyCiA5-1691719294416)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208111101508.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ygu7UqlF-1691719294416)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208111115463.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OXvaPB4u-1691719294416)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208111132852.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OR3ovXQK-1691719294417)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208111149388.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0eozLlrE-1691719294417)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208111203195.png)]

点击下一步

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jWLFLP3R-1691719294417)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208111219528.png)]

点击安装 —》进行安装

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f4vGX1Ze-1691719294418)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208111239616.png)]

安装完成

3、Git汉化

Git汉化分为两部分:汉化Git Bash和汉化Git GUI。

3.1 Git Bash汉化

Git Bash的汉化很简单,只需要在命令行界面点击右键-选择option-Windows-然后在里面将language设置成中文就可以了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rZo6elOK-1691719294418)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208135336129.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OEtrN6u9-1691719294418)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208135340348.png)]

3.2 Git GUI汉化(了解)

Git GUI,想要设置成中文就显得没那么容易了。打开设置里面,全是密密麻麻的的英文,而且找了半天也没找到对应的语言设置,那么到底应该怎么设置Git GUI的中文显示呢?

其实Git GUI本身是真的没有这个语言设置选项的,所幸的是网上已有网友针对其开发出了对应的汉化包,我们只需要下载安装即可,具体可见https://github.com/stayor/git-gui-zh。

下载下来之后,将其放到安装目录下:/mingw64/share/git-gui/lib/msgs/zh_cn.msg,有可能Git的安装路径下面没有msgs这个文件夹,那么需要自己创建之后再将这个汉化包来放进去。这样就算是汉化完了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PHGRhIp0-1691719294418)(E:\PRD\Images\image-20230805112512515.png)]

未设置前

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3oguWLTC-1691719294419)(E:\PRD\Images\image-20230805112636583.png)]

设置后,重新打开软件,你就会发现软件界面已经变成了熟悉的中文了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VlP2LQq1-1691719294419)(E:\PRD\Images\image-20230805112900871.png)]

4、快速上手Git基本命令

只要学会如下Git的十个命令,在日常的开发工作中基本可以应付了。在后面的学习中进行详细了解。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dlSqI7hx-1691719294419)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208142952319.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oJBAUE40-1691719294420)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208143015276.png)]

5、Git是怎么运作的?

从两方面来了解Git是怎么运作的,第一个我们先认识一下Git的几个重要的区域,第二个是Git具体是怎么工作的。

首先我们来回顾下,我们在1中讲过,Git是一个分布式的版本控制系统,在这个分布式的版本控制系统中,它会有一个远程的服务器Server Computer,然后会有多个分布式的客户端Computer A与Computer B等,在分布式的客户端中如何想使用远程服务器中的最新代码,它就需要从远程的仓库里去拉取最新代码。在拉取最新代码到本地仓库后,它自己就能形成一个版本控制系统。这个版本控制系统除了可以跟远程仓库进行交互以外,也可以与其他的分布式客户端共享版本信息。然后即使再跟远程仓库断开连接的情况下,它也能够正常运转,因为它自身也是一个版本控制系统。

那么我们是如何将分布式客户端里的文件推送到远程的仓库中并自动生成版本号呢?首先我们来了解下几个重要的区域

6、工作区、暂存区、本地仓库、远程仓库的区别

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MpYp4RgB-1691719294420)(E:\PRD\Images\image-20221208143707889.png)]

6.1 工作区

工作区是指你当前正在工作的项目目录,其中包含了项目的源代码、资源文件和其他相关文件。工作区是你进行开发、修改和测试代码的地方。

6.2 暂存区

暂存区是Git版本控制系统中的一个概念,它是连接工作区和本地仓库的缓冲区域。在对工作区的修改进行提交之前,你可以使用 git add 命令将修改的文件添加到暂存区。暂存区允许你对即将提交的文件进行选择性的添加和修改,为你提供对提交更加精细的控制。

6.3 本地仓库

本地仓库是存储Git项目的完整历史记录和版本信息的地方。当你在项目目录使用 git init 命令时,Git会在你的项目目录中创建一个本地仓库,并开始记录项目的所有更改和提交历史。本地仓库只能被本地访问和管理,并且可以在本地进行回滚、分支管理等操作。

6.4 远程仓库

远程仓库是位于网络上的一个Git仓库,用于远程团队成员之间的代码共享和版本控制。一个远程仓库可以托管在代码托管服务(如GitHub、GitLab等)或者自建的私有服务器上。通过与远程仓库进行交互,你可以将本地的变更推送到远程仓库、获取最新的变更、与其他开发者协同工作等。

6.4 总结

简而言之,工作区是你当前正在进行开发的目录,暂存区是用于临时存放即将提交的文件的缓冲区域,本地仓库是存储Git项目完整历史记录和版本信息的地方,远程仓库是位于网络上用于代码共享和协同开发的Git仓库。它们在不同的层级上承担着不同的角色和功能,协同工作来提供版本控制和团队协作的能力。

7、 Git具体工作流程

7.1 Git的Clone(克隆)命令与Fetch(提取)命令

首先刚开始的情况下,你的本地电脑上面肯定是没有代码的,这时候你需要从远程服务器上去拉取代码到你本地,这时候我们可以使用Git的Clone命令——实现在本地IDE工具中没有代码的情况下,从远程仓库中克隆一整个仓库的所有信息到你的本地仓库里面来。

如果在本地的IDE工具中已经有远程仓库中的代码,其他人又往远程仓库中推送了更新的代码,如果你要去拉取别人推送的更新代码下来,你要怎么做呢?你可以使用Fetch命令(即Fetch命令是在本地有远程仓库里的代码情况下,再从远程仓库中拉取最新代码)。

(从远程仓库中去拉取数据到本地,第一次是Clone,之后全部都使用Fetch命令。)

7.2 Merge (合并之意)

我们刚刚说的CloneFetch命令都是远程仓库到本地仓库,但是我们实际上写代码的区间是在工作区,所以还需要将保存到本地仓库中的代码拉取到工作区,这时我们可以使用Merge命令从本地仓库把代码拉取到本地工作区

我们在第一次使用Clone命令在本地没有代码的情况下,将远程仓库里的代码克隆到本地后,要想再从远程仓库获取最新代码就必须使用**Fetch命令提取到本发仓库,再使用**Merge命令从本地仓库拉取代码到工作区,这种操作会有一点麻烦,所以我们有一个简化的命令叫Pull

7.3 Pull命令 (拉取)

Pull的功能是从远程仓库中直接Merge代码到本地仓库,并且自动Merge代码到工作区。所以Pull命令是Fetch命令与Merge命令之和。 Pull = Fetch + Merge

如果你当前分支与远程分支之间没有冲突,git pull 将会自动执行合并操作,并将远程更新应用到你的本地分支。

如果存在冲突,git pull 将会提示你解决冲突。你需要手动解决冲突,并提交解决后的文件,然后才能完成合并操作。

需要注意的是,git pull 默认以 fast-forward(快进) 模式合并远程分支,这意味着只有当远程分支的提交历史可以直接连接到本地分支的提交历史时,才会执行快进合并。如果你希望强制执行合并操作,可以使用 git pull --no-ff 命令。

7.4 Checkout命令(签出)

假设你自己有个多分支需要去切换,比如要修改bug,我们就创建一个新分支用于修改bug,在修改完bug后将这个分支再合并到master主分支上面来。这个时候就需要使用Checkout命令实现分支间的切换。

7.5 Add命令(添加)

Add命令是将工作区的代码添加到暂存区。

7.6 Commit命令(提交)

再通过Commit命令将保存到暂存区的代码提交到工作仓库,这样本地仓库中就保存到了提交过来的代码版本信息。

然后未来如果我们在写代码的过程中写错了,我们也可以从本地仓库中重新拉取之前写过的代码合并回去(把旧版本合回去),这样就可以使我们避免一些损失、消耗。

7.7 Push命令(推送)

在提交到本地仓库的代码版本信息确认无误后,我们就可以使用Push命令将本地仓库保存的代码推送到远程仓库中。

7.8 "Commit and Push"按扭

"commit and push"是一个按扭,在保存到工作区的代码在使用add添加到暂存区后,我们可以点击 “commit and push” 这个按扭,直接将保存在暂存区的代码推送到远程仓库

8、Git上传代码流程

8.1 新建Git仓库

点击 + 号 —》新建仓库 —》选择对应的语言 —》点击创建

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3BBPpSWr-1691719294420)(E:\PRD\Images\image-20230808160538080.png)]

代码仓库(这个就是建成之后的效果)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-81TBC1SR-1691719294421)(E:\PRD\Images\image-20230808161614977.png)]

8.2 打开Gitee创建私人令牌

用于编辑工具访问我们Git上面的项目

点击主页 —》私人令牌 —》生成新令牌 进行token令牌生成

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2rU6jTn2-1691719294422)(E:\PRD\Images\image-20230808162624294.png)]

添加描述 —》添加权限 —》点击提交 —》进行密码验证

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7yyAUHmI-1691719294422)(E:\PRD\Images\image-20230808162928738.png)]

注意: 私人令牌记得找个地方保存下来,不然每次需要使用的时候都需要重新生成。

点击复制 —》 勾选 —》然后点击确认并关闭

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aSL3dSas-1691719294422)(E:\PRD\Images\image-20230808163141500.png)]

8.3 使用Idea进行代码更新

8.3.1 打开Idea配置Git

然后打开Idea,进入设置。右击文件 —》设置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5IOX0hKd-1691719294423)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208154315560.png)]

打开版本控制 —》Git —》修改Git安装路径 —》点击测试(显示版本号就证明配置成功了) —>点击确定

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NOmhUK58-1691719294423)(E:\PRD\Images\image-20230808164024912.png)]

8.3.2 添加Gitee账号

打开版本控制,可以看到现在我们的列表里面还没有Gitee

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-csNbXcJ9-1691719294423)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208154414875.png)]

打开插件搜索 Gitee —》安装 —》应用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fIv9STbT-1691719294424)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208154545146.png)]

现在可以看到我们的版本控制里面有Gitee了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iPLvP97w-1691719294424)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208154658885.png)]

打开版本控制 —》Gitee —》点击 + 号或者添加账户 —》添加Token令牌进行验证(也可以使用账号密码登录Gitee账号,第一个选项就是通过账号密码登录)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qlFN1zKM-1691719294424)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208154818902.png)]

然后将我们刚才生成的Token添加进去 — 》再点击添加账号

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aIvJc8AF-1691719294425)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208160057876.png)]

可以看到账号已经添加成功了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EOrVvt17-1691719294425)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208160218297.png)]

然后就可以对我们Gitee上面的项目进行版本控制了

打开Gitee —》点击(克隆/下载)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bzFBR8AV-1691719294425)(E:\PRD\Images\image-20230808164654861.png)]

然后点击HTTPS —》进行代码地址复制

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wP7d6vmj-1691719294425)(E:\PRD\Images\image-20230808164802362.png)]

点击文件 —》新建 —》来自版本控制的项目 —》进行Gitee上面的项目导入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LPpRp1k3-1691719294426)(C:\Users\11\AppData\Roaming\Typora\typora-user-images\image-20221208161201771.png)]

将复制的代码地址放入到URL框中 —》 点击克隆 —》进行代码克隆

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KYnlIhcG-1691719294426)(E:\PRD\Images\image-20230808165043627.png)]

第一次是clone我们的远程仓库中的代码,什么都没有,然后我们就可以进行框架的搭建,进行项目的编写了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eXsuAg0d-1691719294427)(E:\PRD\Images\image-20230808165338354.png)]

8.3.3 模拟项目成员向代码仓库推送代码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h09fD2Jh-1691719294427)(E:\PRD\Images\image-20230808170755821.png)]

输入文件名称 —》编写文件内容 —》输入提交信息 —》 点击提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zx885ngJ-1691719294427)(E:\PRD\Images\image-20230808172827274.png)]
选择分支 —》点击提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G3NBtRbI-1691719294427)(E:\PRD\Images\image-20230808172935847.png)]

8.3.4 Git更新操作(Fetch,Merge)

这种操作不是很方便,需要提取再进行合并(这个操作是用于将代码仓库中最新的代码合并到工作区)

  1. 第一步Git->Fetch拉取到本地仓库

在Git中,git fetch是用于从远程仓库获取最新的提交和分支信息的命令。它不会自动合并或修改你的本地分支,而仅仅将最新的远程变更下载到本地。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DDMKh1rv-1691719294428)(E:\PRD\Images\image-20230808173140236.png)]

  1. 第二步Git->Merge 将工作区的代码与本地仓库进行比较

在Git中,git merge是将一个分支的变更合并到另一个分支的操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OUh7juLo-1691719294428)(E:\PRD\Images\image-20230809085827036.png)]

  1. 最终效果

可以看到我们的工作区已经将最新变更给合并了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YBI2VhyR-1691719294428)(E:\PRD\Images\image-20230809102135567.png)]

8.3.5 Git更新操作(Pull)

1. 第一步

查看目前代码的修改状态 (git status)

2. 第二步

暂存需要提交的文件(git add “文件名”)

3. 第三步

提交已暂存的文件(git commit -m “提交日志内容”) 注意:这个内容必须填写,不然提交不了

先将更新的文件添加到暂存区 —》然后提交到本地仓库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CY6aeiev-1691719294429)(E:\PRD\Images\image-20230809103018208.png)]

点击要提交的最新文件 —》提交的消息 —》提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-drMgHwvR-1691719294429)(E:\PRD\Images\image-20230809111019346.png)]

提交成功,没报错就是成功了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xIeNzRCp-1691719294429)(E:\PRD\Images\image-20230809111240050.png)]

4. 第四步

git pull

在提交项目之前必须先对项目进行更新,此项特别重要,如果不进行更新,别人有项目提交到服务器上,那么你的项目将会提交不上去,使用git解决冲突会比较麻烦,即使你解决了冲突,但是有时候不注意会冲掉别人写的代码,不像svn使用那么简单,所以推送自己项目前必须进行更新(特别重要)

如图1:选择Pull进行更新代码操作;

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l3uXEneQ-1691719294430)(E:\PRD\Images\image-20230809111203892.png)]

拉取成功,没报错就是成功了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kyjIyVCV-1691719294430)(E:\PRD\Images\image-20230809111303748.png)]

8.3.6 代码提交(Push)

1. 第一步

git push -u origin master

在拉取项目的时候我们已经将最新的代码拉取到本地仓库了,可以直接进行推送了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-23e3TXkR-1691719294430)(E:\PRD\Images\image-20230809111502474.png)]

选择要推送的分支 —》点击推送

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K4R7VB6m-1691719294430)(E:\PRD\Images\image-20230809111730628.png)]

推送成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1xURqlQZ-1691719294431)(E:\PRD\Images\image-20230809111856169.png)]

至此本地库的代码就成功的提交到远程库,可以在远程库查看更新的代码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d9NX7hTI-1691719294431)(E:\PRD\Images\image-20230809112116227.png)]

8.3.7 代码冲突

1. 什么是冲突

冲突是指当你在提交或者更新代码时被合并的文件与当前文件不一致。

2. 冲突的场景
  • 更新代码

  • 提交代码

  • 多个分支代码合并到一个分支时

  • 多个分支向同一个远端分支推送代码时

git的合并中产生冲突的具体情况:
  <1>两个开发者(分支中)修改了同一个文件(不管什么地方)
  <2>两个开发者(分支中)修改了同一个文件的名称
  注意:两个分支中分别修改了不同文件中的部分,不会产生冲突,可以直接将两部分合并。

总结:上面各种情况的本质都是,当前文件与合并文件不一致,因此不论哪种情况其解决冲突的方法是一样的。

3. 解决冲突
远程模拟场景:

双击Hello文件 —》进入文件内部

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B7Ho71Wg-1691719294431)(E:\PRD\Images\image-20230809113045178.png)]

点击编辑 —》模拟代码冲突场景

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ulUosCzK-1691719294432)(E:\PRD\Images\image-20230809113122613.png)]
新增两行代码用于模拟冲突问题

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6zCbNCcf-1691719294432)(E:\PRD\Images\image-20230809113459255.png)]

提交信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dMqhhskY-1691719294432)(E:\PRD\Images\image-20230809114154687.png)]

选择分支 —》点击提交

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ivCP4q2F-1691719294432)(E:\PRD\Images\image-20230809114243669.png)]

可以看到是刚刚提交的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QSpP3HCd-1691719294433)(E:\PRD\Images\image-20230809114321405.png)]

本地模拟情景:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iZAaiF4g-1691719294433)(E:\PRD\Images\image-20230809114714399.png)]

解决代码冲突:
  1. 现将本地更新的代码提交到本地仓库中:git add —》git commit '提交的信息'

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EYcz5baA-1691719294433)(E:\PRD\Images\image-20230809115041729.png)]

提交到本地仓库成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-34ihD3Bv-1691719294433)(E:\PRD\Images\image-20230809115136295.png)]

  1. 进行代码拉取(Pull)

先将.idea和out文件删除,因为我们并没有将它们进行版本控制,它只是我们本地的配置,有可能会报拉取上面的错误,如下所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uNTZzSFt-1691719294434)(E:\PRD\Images\image-20230809115506462.png)]

选择分支 —》拉取

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Je85eY4W-1691719294434)(E:\PRD\Images\image-20230809115720095.png)]

进行合并,有三种情况:

  1. 第一种:以我本地仓库的代码为准
  2. 第二种:以远程仓库代码为准
  3. 第三种:手动合并

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cfPmlygG-1691719294434)(E:\PRD\Images\image-20230809133935364.png)]

一般都是通过跟团队另一个更改本文件的小伙伴一起沟通进行手动合并,以免误删别人代码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gN1lq4XG-1691719294435)(E:\PRD\Images\image-20230809134423280.png)]

一般解决冲突我们都是选择merge

4. 关于冲突的个人心得

多人协作开发的时候,如果出现了你没有改过的文件跟你冲突了,一定要去找到当事者,说清楚是如何冲突的;

然后协商解决,千万不要擅自拉别的分支去试图解决冲突,或找文件覆盖,更或者以自己的文件为准.

同时记住,解决了之后,要addcommit 最后push.为保证万无一失,最后在冲突都解决之后,重启项目;

保证至少不会有立即奔溃的现象发生.然后才去提交,push.

提交的时候,一定要保持清醒,先搞清楚自己要提交的文件之间的关系,然后再提交,这样才不会有文件缺失的问题,造成奔溃.

如果任务比较多,又开了多个分支,分别进行开发,再次强调,一定要清楚自己在各个分支上做了什么,自己要提交的是什么.最好是能做个详细的笔记,没有把握宁愿不要去提交到生产服务器.

提交代码的时候不要走神,因为这是一个神圣的时刻!

至此我们的Git的使用就完成

8.4 使用Git命令进行代码更新

8.4.1 先根据8.3.3模拟项目成员向仓库推送代码

8.4.2 新建文件夹

1. 新建文件夹 —》右击 —》选择 Git Bash Here

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KomrRu2O-1691719294435)(E:\PRD\Images\image-20230810095330896.png)]

2. 在本地文件夹中初始化Git仓库
git init

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZlzGNRug-1691719294436)(E:\PRD\Images\image-20230810114344155.png)]

3. 克隆一个远程仓库到本地
git clone <repository-url> <自定义名称>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yWaT9hTD-1691719294436)(E:\PRD\Images\image-20230810154936069.png)]

可以看到是需要凭证认证的,这是我们自己设置的,只有通过凭证认证才可以进行后续的操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kmQ7pykN-1691719294436)(E:\PRD\Images\image-20230810154619713.png)]

进行认证之后才能对远程仓库进行操作

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lWJDrAI4-1691719294437)(E:\PRD\Images\image-20230810115321926.png)]

可以看到文件夹下面多了一个文件夹(Git_Test)这个就是我们刚才创建的,点进去查看就是我们Git仓库上面的代码,接下来我们就可以对他进行版本控制了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uSxeE3gc-1691719294437)(E:\PRD\Images\image-20230810115442355.png)]

4. 将文件添加到暂存区
  1. 在 Git_Test 文件夹中重新打开Git工具(根据自己的文件夹路径显示进行对应操作)

  2. 输入 vim Hello.java 对 Hello.java这个类进行编辑,按i、o可以进行编辑

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zeuKfrZ7-1691719294437)(E:\PRD\Images\image-20230810140820924.png)]

  1. 在测试类中添加一行代码,用于演示效果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WRzhnTfO-1691719294438)(E:\PRD\Images\image-20230810140726338.png)]

按退出键(Esc)后 输入 :wq(保存并退出)

  1. 将文件添加到暂存区

    git add . 主要用于添加当前目录下的修改和新添加的文件到暂存区,而不包括删除的文件。

    git add --all git add -A 则会添加当前目录及其子目录下的所有修改、新增和删除的文件到暂存区。使用哪种命令取决于你想要达到的效果和需要添加到暂存区的文件类型。

    <file> 参数可以是单个文件的路径,也可以是使用通配符指定的多个文件,多个文件使用空格隔开

将代码添加到Git仓库的暂存区: git add <file>
添加所有文件: git add . (add后面有个点)git add -Agit add --all

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xf3LGQiP-1691719294438)(E:\PRD\Images\image-20230810140914350.png)]

  1. 输入 vim Test.txt 对 Test.txt这个文件进行编辑 ,按i、o可以进行编辑

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2AbWtmqi-1691719294438)(E:\PRD\Images\image-20230810144505636.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vJAG1fEU-1691719294439)(E:\PRD\Images\image-20230810144711507.png)]

按退出键(Esc)后 输入 :wq(保存并退出)

  1. 输入 git status 查看提交状态

Changes to be committed: 表示在工作区和暂存区都存在的file

Untracked files: 表示在工作区才有的文件,没有添加到暂存区

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BrctF5df-1691719294439)(E:\PRD\Images\image-20230810144850916.png)]

5. 提交代码到本地仓库
  1. 先了解语法
语法: git commit [-m <message>] [--amend] [--no-edit] [--allow-empty]
  • -m <message>:指定提交的消息。消息应该是有意义的、明确描述本次提交所做更改的简短文本。例如:git commit -m "Fix a bug"
  • --amend:用于修正最后一次提交。通过该选项可以修改上一次提交的消息或者添加/移除文件到上一次提交中,不会生成新的commit-id,通常用于上一次提交版本进行修改,进行合并。
  • --no-edit:用于在修改最后一次提交时,保持原提交的消息不变而不打开文本编辑器。
  • --allow-empty:允许创建一个空的提交,即没有实际更改内容的提交。这在某些情况下可能会有用。
  • -am: 提交跟踪过的文件,相当于直接跳过add环节,-am = add + commit

注意:这个内容必须填写,不然提交不了,在执行 git commit 前,需要确保已使用 git add 命令将要提交的文件添加到暂存区中。否则,git commit 将无法成功进行提交。

  1. 进行代码提交到本地仓库

    可以看到生成了 commit-id 证明提交成功了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PU4A0Yea-1691719294439)(E:\PRD\Images\image-20230810152928880.png)]

6. 进行远程仓库代码拉取

由于我们克隆下来的是最新的版本,这里我们就不需要拉取了,不过还是演示一下吧

注意:每次进行代码推送的时候我们都要拉取最新的代码进行推送,不然版本不一致会出现很多问题

远程仓库代码拉取命令: git pull

输入 git pull 进行最新版本代码拉取

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aFPzXSx5-1691719294439)(E:\PRD\Images\image-20230810153837782.png)]

显示 Already up to date. 证明我们的版本是最新的

7. 进行代码推送
git push -u origin master

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tZJiMN7L-1691719294440)(E:\PRD\Images\image-20230810155500086.png)]

推送成功

8.5 Idea分支

1. 新建分支

创建分支命令: git branch <branch-name>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GnC1Ys7x-1691719294440)(E:\PRD\Images\image-20230809135305425.png)]

刚开始新建的分支内容与主分支是一致的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jce0xYHx-1691719294440)(E:\PRD\Images\image-20230809135446883.png)]

2. Idea查看分支

查看本地分支命令: git branch
查看远程分支命令: git branch -r

在Idea右下角,你可以看到你当前所在的分支,带着[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DefSa9qH-1691719294441)(E:\PRD\Images\8A824FF1.png)]符号的就是主分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1mYr7Yum-1691719294441)(E:\PRD\Images\image-20230809141222192.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iM2192Ts-1691719294441)(E:\PRD\Images\image-20230809141203380.png)]

3. 推送分支到远程库

签出分支命令: git checkout <branch_name>
推送分支到远程仓库命令: git push origin <branch_name>

选择项目Push:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w6wwHxFB-1691719294441)(E:\PRD\Images\image-20230809142833993.png)]

推送完成后,可在远程库查看到刚推送的分支:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yvQbLxCh-1691719294442)(E:\PRD\Images\image-20230809145008440.png)]

4. 分支合并

合并分支命令: git merge <branch-name>

先分别往两个分支里面添加一些内容,使它们的内容不同,然后更新到仓库,就可以进行分支合并了,提交到仓库我之前已经讲过了,这里就不做赘述了。

注意:如果要分支合并的话,先把分支切换到主分支上进行合并

主分支代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nUXkKqCp-1691719294442)(E:\PRD\Images\image-20230809150839112.png)]

测试分支代码:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I8VD1PVC-1691719294442)(E:\PRD\Images\image-20230809150620900.png)]

代码编写完记得提交到本地仓库,然后签出到主分支进行代码合并

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-52gQCHx5-1691719294443)(E:\PRD\Images\image-20230809150225185.png)]

点击智能合并

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-n9o0VfkO-1691719294443)(E:\PRD\Images\image-20230809151128962.png)]

选择手动合并,这时候应该是你和你的小伙伴用到了同一块代码了,记得和小伙伴商量如何修改,修改之前一定要记得备份。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CY3dZZ2U-1691719294443)(E:\PRD\Images\image-20230809151313998.png)]

进行手动合并

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pJD0R1eF-1691719294443)(E:\PRD\Images\image-20230809151723998.png)]

最终结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wCQZiWLc-1691719294444)(E:\PRD\Images\image-20230809151802096.png)]

5. 删除分支

删除分支命令: git branch -d <branch-name>
强制删除分支命令: git branch -D <branch-name>
删除远程仓库分支命令: git push origin --delete <branch-name>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xrv9WlHG-1691719294444)(E:\PRD\Images\image-20230809152022687.png)]

查看分支

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ewBUTUo-1691719294444)(E:\PRD\Images\image-20230809152054608.png)]

6. 其他操作分支命令

重命名分支: git branch -m <old-branch-name> <new-branch-name>
查看分支合并状态: git branch --merged
查看已经合并到当前分支的分支: git branch --no-merged
切换分支: git checkout <branch-name> 或  Git 版本(2.23+): git switch <branch-name>
创建并切换到新分支: git checkout -b <new-branch-name>  或  Git 版本(2.23+): git switch -c <new-branch-name>

8.6、更多Git命令

配置相关命令

  1. git config --global user.name "<Your Name>":设置全局用户名,这个就是代码提交的用户名。
  2. git config --global user.email "<your_email@example.com>":设置全局用户邮箱。
  3. git config --global core.editor "<editor>":设置全局文本编辑器,用于撰写提交说明。
  4. git config --global color.ui true:启用全局彩色输出,使 Git 命令输出更具可读性。
  5. git config --global alias.<alias-name> <command>:设置自定义的 Git 别名,用于简化命令的使用。
    例如:git config --global alias.s status 会将 git status 命令简化为 git s

你可以使用 git config --global --list 命令来查看当前的全局配置信息。

更多命令

  1. git init:在当前目录初始化一个新的Git仓库。
  2. git clone <repository>:克隆(下载)远程仓库到本地。
  3. git add <file>:将文件添加到暂存区,准备提交。
  4. git commit -m "<message>":将暂存区中的改动提交到本地仓库,可以附带一条注释。
  5. git status:查看当前仓库的状态,包括被修改但未提交的文件、新文件等。
  6. git log:查看提交历史记录。
  7. git branch:列出当前仓库的分支列表。
  8. git checkout <branch>:切换到指定的分支。
  9. git merge <branch>:将指定分支的改动合并到当前分支。
  10. git pull:从远程仓库拉取最新的代码更新到本地分支。
  11. git push:将本地分支的修改推送到远程仓库。
  12. git remote add <name> <url>:将远程仓库添加到本地,并赋予一个名称。
  13. git remote -v:查看当前仓库关联的远程仓库信息。
  14. git diff:查看当前工作区与暂存区的差异。
  15. git diff --cached:查看暂存区与最近一次提交的差异。
  16. git diff <commit> <commit>:比较两个提交之间的差异。
  17. git reset <file>:将文件从暂存区移出,取消暂存。
  18. git reset <commit>:将当前分支的HEAD指针移动到指定的提交。
  19. git revert <commit>:撤销指定的提交,生成一个新的提交来反转变更。
  20. git stash:将当前的工作区变更暂存起来,切换到干净的工作区。
  21. git stash pop:恢复最近一次stash的变更并将其从stash堆栈中移除。
  22. git tag <tagname>:创建一个标签,用于标记重要的提交。
  23. git remote remove <name>:移除已关联的远程仓库。
  24. git rebase <branch>:将当前分支的提交基点移动到指定分支的末端。
  25. git remote show <remote>:显示指定远程仓库的详细信息,包括分支跟踪等。
  26. git fetch:从远程仓库下载最新的代码更新,但不会自动合并到当前分支。
  27. git cherry-pick <commit>:选择指定的提交,并将其应用到当前分支。
  28. git revert --no-commit <commit>:撤销指定的提交,并保留撤销操作的改动,但不生成新的提交。
  29. git rebase -i <commit>:以交互式模式重新设置基点,允许合并、修改或删除提交。
  30. git clean -n:显示将要被删除的未被跟踪的文件,但不会真正删除它们。
  31. git bisect:用于二分查找来定位导致问题的代码提交。
  32. git blame <file>:逐行显示指定文件的每一行是谁做的修改,并显示相应的提交信息。
  33. git log --graph:以图形化方式展示提交历史。
  34. git submodule:用于管理和操作Git仓库中的子模块。

查看更多命令

git help: 通过在命令行中输入git help,可以获取关于Git命令的详细说明和用法。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

[QT编程系列-41]:Qt QML与Qt widget 深入比较,快速了解它们的区别和应用场合

目录 1. Qt QML与Qt widget之争 1.1 出现顺序 1.2 性能比较 1.3 应用应用领域 1.4 发展趋势 1.5 QT Creator兼容上述两种设计风格 2. 界面描述方式的差别 3. QML和Widgets之间的一些比较 4. 选择QML和Widgets之间的Qt技术时&#xff0c;可以考虑以下几个因素&#xff…

纯前端 -- html转pdf插件总结

一、html2canvasjsPDF&#xff08;文字会被截断&#xff09;&#xff1a; 将HTML元素呈现给添加到PDF中的画布对象&#xff0c;不能仅使用jsPDF&#xff0c;需要html2canvas或rasterizeHTML html2canvasjsPDF的具体使用链接 二、html2pdf&#xff08;内容显示不全文字会被截断…

Linux:Shell编程之正则表达式

目录 绪论 1、正则表达式 1.1 通配符 1.2 正则表达式分类 1.3 基本正则 1.4 正则表达式中表示次数的表达式 1.5 位置锚定 1.5.1 词首锚定和词尾锚定 1.6 分组&#xff08;&#xff09; 1.7 逻辑或 1.8 扩展正则 绪论 正则表达式&#xff1a;有一类特殊字符以及文本…

Apache Paimon 流式数据湖 V 0.4 与后续展望

摘要&#xff1a;本文整理自阿里云开源大数据表存储团队负责人、阿里巴巴高级技术专家&#xff0c;Apache Flink PMC&#xff0c;Paimon PPMC 李劲松&#xff08;之信&#xff09;在 Apache Paimon Meetup 的分享。本篇内容主要分为四个部分&#xff1a; 湖存储上的难点深入 Ap…

STM32 LL库+STM32CubeMX--LED呼吸灯

一、前期准备 硬件&#xff1a;STM32F103C8T6开发板调试工具&#xff1a;DAPLink(本次使用)或USB-TTL开发环境&#xff1a;STM32CubeMX、Keil、Vscode(可选)LED&#xff1a;使用PA0(TIM2_CH1)输出PWM&#xff0c;LED的阴极接GND 二、使用定时器中断产生PWM STM32F103C8T6在72…

图像的平移变换之c++实现(qt + 不调包)

1.基本原理 设dx为水平偏移量&#xff0c;dy为垂直偏移量&#xff0c;则平移变换的坐标映射关系为下公式&#xff0c;图像平移一般有两种方式。 1.不改变图像大小的平移&#xff08;一旦平移&#xff0c;相应内容被截掉&#xff09; 1&#xff09;当dx > width、dx < -wi…

《华为认证》L2TP VPN配置

配置接口ip地址&#xff0c;并且将防火墙的接口加入对应的安全区域 。 LNS的G1/0/0 IP为202.1.1.1 1、配置LNS的缺省路由&#xff1a; ip route-static 0.0.0.0 0.0.0.0 202.1.1.2 2、通过WEB 界面配置防火墙的 L2TP VPN 浏览器输入&#xff1a; https://202.1.1.1:8443/def…

【脚踢数据结构】深入理解栈

(꒪ꇴ꒪ )&#xff0c;Hello我是祐言QAQ我的博客主页&#xff1a;C/C语言,Linux基础,ARM开发板&#xff0c;软件配置等领域博主&#x1f30d;快上&#x1f698;&#xff0c;一起学习&#xff0c;让我们成为一个强大的攻城狮&#xff01;送给自己和读者的一句鸡汤&#x1f914;&…

群晖7.X版安装cpolar内网穿透

群晖7.X版安装cpolar内网穿透套件 文章目录 群晖7.X版安装cpolar内网穿透套件前言1. 下载cpolar的群晖系统套件1.1 在“套件中心” 选择“手动安装”1.2 完成套件安装 2. 进入cpolar软件信息页3. 点击“免费注册”轻松获得cpolar账号 前言 随着群晖系统的更新换代&#xff0c;…

taro Swiper组件--异形滚动

效果 <SwiperindicatorDots{false}previousMargin50pxnextMargin50pxautoplay{false}interval100onChange{onChangeSwiper} >{[1,2,3].map((item, index) > {return (<SwiperItemkey{item-${index}}><View className{demo-item ${currentIndex index ? ac…

功能上新|全新GPU性能优化方案

GPU优化迎来了全新的里程碑&#xff01;我们深知移动游戏对高品质画面的追求日益升温&#xff0c;因此UWA一直着眼于移动设备GPU性能优化&#xff0c;以确保您的游戏体验尽善尽美。然而&#xff0c;不同GPU芯片之间的性能差异及可能导致的GPU瓶颈问题&#xff0c;让优化工作变得…

sentinel---滑动窗口的实现原理

sentinel有多种规则&#xff0c;包括&#xff1a;降级、限流、热点等等规则&#xff0c;这些规则均会涉及到时间因素&#xff0c;既在单位时间内的请求量满足各种条件之后的各种动作。 这里我们一起来探针一下sentinel中滑动窗口的实现 如上是一个滑动窗口的示意图。 这里先不…

内生安全构建数据存储

一、数据安全成为防护核心&#xff0c;存储安全防护不容有失 1、数据作为企业的核心资产亟需重点保护&#xff0c;数据安全已成网络空间防护核心 2、国家高度重视关键信息基础设施的数据安全&#xff0c;存储安全已成为审核重点 二、存储安全是数据安全的关键一环&#xff0c;应…

腾讯云CVM服务器竞价实例是什么?和按量计费有什么区别?

腾讯云服务器CVM计费模式分为包年包月、按量计费和竞价实例&#xff0c;什么是竞价实例&#xff1f;竞价实例和按量付费相类似&#xff0c;优势是价格更划算&#xff0c;缺点是云服务器实例有被自动释放风险&#xff0c;腾讯云服务器网来详细说下什么是竞价实例&#xff1f;以及…

Electron + Vue3 + Vite + TS 构建桌面应用

之前是使用React、Electron、TS和webpack来构建桌面应用的。虽然功能齐全,但是打包等等开发的体验不太理想,总感觉太慢了。作为一个开发者,我们总是希望,执行构建命令后,可以快速打包或者启动本地应用,且通过更少的配置,来完成开发体验。 现在的vite已经得到广泛的应用…

16-3_Qt 5.9 C++开发指南_使用QStyle 设置界面外观_实现不同系统下的界面效果的匹配

文章目录 1. QStyle的作用&#xff08;实现不同系统下的界面效果的匹配&#xff09;2. Qt内置样式的使用3. 源码3.1 可视化UI设计3.2 mainwindow.cpp 1. QStyle的作用&#xff08;实现不同系统下的界面效果的匹配&#xff09; Qt 是一个跨平台的类库&#xff0c;相同的界面组件…

Kafka:springboot集成kafka收发消息

kafka环境搭建参考Kafka&#xff1a;安装和配置_moreCalm的博客-CSDN博客 1、springboot中引入kafka依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><…

机器学习深度学习——RNN的从零开始实现与简洁实现

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——循环神经网络RNN &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你们有所帮…

TSINGSEE青犀视频安防监控视频平台EasyCVR设备在线,视频无法播放的原因排查

可支持国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等多种协议接入的安防监控视频平台EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、…

28岁,从字节退休了···

大厂一直是每个程序员都向往职业目标&#xff0c;大厂意味着薪资高、福利好、倍有面儿&#xff0c;而且发展空间也大。甚至有人调侃不想进大厂的程序员不是好程序员。 而在网上&#xff0c;也有各个网友分享自己在大厂的经历&#xff0c;在某平台还有一个近2600万浏览的话题&a…