Git的基本使用笔记——狂神说
版本控制
版本迭代,
版本控制( Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。实现跨区域多人协同开发
追踪和记载一个或者多个文件的历史记录组织和保护你的源代码和文档
统计工作量
并行开发、提高开发效率跟踪记录整个软件的开发过程
减轻开发人员的负担,节省时间,同时降低人为错误没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。
主流的版本控制软件:
我们学习的东西,一定是当下最流行的
Git
SVN( Subversion )
cvs ( concurrent Versions System )vss ( Micorosoft Visual SourceSafe )
TFS ( Team Foundation Server )
Visual Studio Online
1、本地版本控制
记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。
2、集中版本控制
所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改
所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、vSs
代码全在中央服务器上,电脑必须联网才能工作
3、分布式版本控制Git
所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。
每个用户都拥有全部的代码。所以有的公司出于隐私还是用svn。
Git和SVN的区别
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。
Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的∶比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件
Git是目前世界上最先进的分布式版本控制系统。
Git环境配置
卸载
先检查环境变量path中有没有和git相关的环境变量,如C:\Program Files\Git\cmd,给删除掉。
然后打开控制面板,找到git,然后一键卸载掉。
下载安装
打开[git官网Git - Downloading Package,下载git对应操作系统的版本win64位。
所有东西下载慢的话就可以去找镜像!
淘宝镜像上下稳定版的64为的:下载.exe文件
CNPM Binaries Mirror
安装的时候:无脑下一步即可。可选安装目录,可选其默认打开的文本编辑器。
安装成功后就会发现:win中,多了git bash(和linux语法相似)和git gui(图形界面不建议使用)和git cmd(和windows语法相似)、
然后右键多了git bash here 和git gui here,环境变量中多了git的配置。
基本的linux命令学习
使用git bash需使用到linux命令:
基本的Linux命令学习
1 ) 、cd:改变目录。
2 ) 、cd ..回退到上一个目录,直接cd进入默认目录3 ) 、pwd:显示当前所在的目录路径。
4 ) 、ls(Il):都是列出当前目录中的所有文件,只不过ll(两个Il列出的内容更为详细。5 ) 、touch:新建一个文件如touch index.js就会在当前目录下新建一个index.js文件。
6 ) 、rm:删除一个文件, rm index.js 就会把index.js文件删除。
7 ) 、mkdir:新建一个目录,就是新建一个文件夹。-p允许多级目录
8 ) . rm :递归删除一个文件夹, rm -r src递归删除src目录 rm -rf 不用确认直接递归移除,千万别rm -rf /这样会递归删除所有东西格式化系统的,会删除Linux根目录下的所有文件,直接导致服务器瘫痪,删库犯法。
9 ) 、mv移动文件, mv index.html src index.html是我们要移动的文件, src是目标文件夹,和目标文件夹在同一目录下。
10 ) 、reset重新初始化终端/清屏。11 ) . clear清屏。
12 ) 、 history查看命令历史。13 ) . help 帮助。
14 ) .exit退出。15 )、#表示注释
16)、ps查看进程 ps -ef|grep redis kill -9 pid关闭进程
git的必要配置
git config -l 当前项目下关于git的所有配置,一般就是本机配置
kongdeyi@DESKTOP-TJP7C4E MINGW64 ~/Desktop/gitcode
$ git config -l
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
user.name=kongdeyi
user.email=2138991631@qq.com
http.sslverify=false
git config --system --list 查看系统配置,就没有了下面的用户配置了
kongdeyi@DESKTOP-TJP7C4E MINGW64 ~/Desktop/gitcode
$ git config --system --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
pull.rebase=false
credential.helper=manager
credential.https://dev.azure.com.usehttppath=true
init.defaultbranch=master
git config --global --list本地配置,用户自己配的,下面的用户名和emial是必须配置的。
kongdeyi@DESKTOP-TJP7C4E MINGW64 ~/Desktop/gitcode
$ git config --global --list
user.name=kongdeyi
user.email=2138991631@qq.com
http.sslverify=false
Git相关的配置文件:
1 ) 、C:\Program Files\Git\etc\gitconfig : Git安装目录下的gitconfig--system系统级
2 )、C:\Users\kongdeyi\.gitconfig只适用于当前登录用户的配置--global全局这里可以直接编辑配置文件,通过命令设置后会响应到这里。
设置用户名与邮箱
(用户标识,必要) 不设置提交不上项目
kongdeyi@DESKTOP-TJP7C4E MINGW64 ~/Desktop/gitcode
$ git config --global user.name "kongdeyi"kongdeyi@DESKTOP-TJP7C4E MINGW64 ~/Desktop/gitcode
$ git config --global user.email "3284514536@qq.com"
git的工作原理
工作区域
Git本地有三个工作区域∶工作目录(Working Directory )、暂存区(Stage/Index)、资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换关系如下︰
Workspace :工作区,就是你平时存放项目代码的地方,如idea的项目的目录
Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,index文件,保存即将提交到文件列表信息,实际上看不到
Repository :仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。git项目的隐藏文件夹.git文件夹中有个HEAD文件,打开如下,里面ref执行主分支master:。一般不会在主分支里面做。ref: refs/heads/master
Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
git的工作流程一般是这样的:
1、在工作目录中添加、修改文件;如修改UserMapper.xml
2、将需要进行版本管理的文件放入暂存区域; git add . add点代表将所有的文件放入暂存区
3、将暂存区域的文件提交到git仓库。git commit4、一般还要推到远程仓库。
git项目创建及克隆
工作目录(WorkSpace)一般就是你希望Git帮助你管理的文件夹,可以是你项目的目录,也可以是一个空目录,建议不要有中文。
日常使用只要记住下图6个命令∶
创建本地仓库
创建本地仓库的方法有两种:一种是创建全新的仓库,另一种是克隆远程仓库。
创建全新的仓库
初始化git:
创建一个目录C:\Users\kongdeyi\Desktop\gitcode目录,进入目录右键git bash here ,然后git init,该目录下就会创建一个.git的文件夹
克隆远程仓库
无论是到github还是gitee里面的某个仓库都会有一个clone的地,可拷贝他的https的clone的地址。
我们C:\Users\kongdeyi\Desktop\gitcode目录,进入目录右键git bash here ,然后git clone https://github.com/2138991631qq/PharmacySystem.git 。下载下后,就会在该文件夹中多了一个PharmacySystem文件夹,点进去有.git目录个工作文件,就是克隆了地址仓库中的内容。使用github速度慢的可下一个fastgithub如下:
FastGithub 下载_阳光明媚UPUP的博客-CSDN博客
git的基本操作命令
git文件操作
文件4种状态
- 版本控制就是对文件的版本控制,要对文件进行修改、提交等操作,首先要知道文件当前在什么状态,不然可能会提交了现在还不想提交的文件,或者要提交的文件没提交上。
- Untracked:刚新建的文件是这个状态,未跟踪,此文件在文件夹中,但并没有加入到git库,不参与版本控制.通过git add状态变为staged
- Unmodify:上一步git add后台,文件已经入库,未修改,即版本库中的文件快照内容与文件夹中完全一致.这种类型的文件有两种去处,如果它被修改,而变为Modified .如果使用git rm移出版本库,则成为untracked文件
- Modified:文件已修改,仅仅是修改,并没有进行其他的操作.这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout则丢弃修改过,返回到unmodify状态,这个 git checkout即从库中取出文件,覆盖当前修改
- Staged:暂存状态.执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为unmodify状态.执行git reset HEAD filename取消暂存,文件状态为Modified
操作命令
C:\Users\kongdeyi\Desktop\gitcode目录下,刚刚执行了git init,创建了本地仓库,删除除.git文件夹外的东西,我们本目录创建一个a.txt文件夹,也可touch的方式创建,然后执行git status给出了a.txt未放入库中的提示,我们git add . 然后git status ,给出可以提交的提示,然后git commit -m "消息" 提交后。再git status,就提示没有要提交的内容了。
kongdeyi@DESKTOP-TJP7C4E MINGW64 ~/Desktop/gitcode (master)
$ git status
On branch masterNo commits yetUntracked files:(use "git add <file>..." to include in what will be committed)a.txtnothing added to commit but untracked files present (use "git add" to track)kongdeyi@DESKTOP-TJP7C4E MINGW64 ~/Desktop/gitcode (master)
$ git add .kongdeyi@DESKTOP-TJP7C4E MINGW64 ~/Desktop/gitcode (master)
$ git status
On branch masterNo commits yetChanges to be committed:(use "git rm --cached <file>..." to unstage)new file: a.txtkongdeyi@DESKTOP-TJP7C4E MINGW64 ~/Desktop/gitcode (master)
$ git commit -m "提交a.txt文件"
[master (root-commit) e45954b] 提交a.txt文件1 file changed, 0 insertions(+), 0 deletions(-)create mode 100644 a.txtkongdeyi@DESKTOP-TJP7C4E MINGW64 ~/Desktop/gitcode (master)
$ git status
On branch master
nothing to commit, working tree clean
cd [文件夹]
git branch
git branch dev1 //创建新分支
git switch dev1 //切换到dev1分支
git push 提交到当前分支
git push origin [分支名] 提交到指定分支
忽略文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等在主目录下建立".gitignore"文件,此文件有如下规则∶
1.忽略文件中的空行或以井号(# )开始的行将会被忽略。
2可以使用Linux通配符。例如∶星号(*)代表任意多个字符,问号(﹖)代表一个字符,方括号([abc])代表可选字符范围,大括号( {string1,string2,.…})代表可选的字符串等。
3.如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
4.如果名称的最前面是一个路径分隔符(/ ),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
5.如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt#忽略所有.txt结尾的文件,这样的话上传就不会被选中!
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt但不包括doc /server/arch.txt
idea中项目的.gitignore可用下面这套配置
*.class
*.log
*.lock
# Package Files #
*.jar
*.war
*.ear
target/#idea
.idea/
*.iml*velocity.log*### STS ###
.apt_generated
.factorypath
.springBeans###Tntel1iDeA“
*.iml
*.ipr
*.iws
.idea
.classpath
.project
.settings/
bin/*.1og
tmp/#rebel
*rebel.xml*
码云的注册和使用
github是有墙的,比较慢,在国内的话,我们一般使用gitee,公司中有时候会搭建自己的gitlab服务器
Gitee - 企业级 DevOps 研发效能平台
1、注册,登录,创建仓库,设置仓库为私有或开源,从github上导入仓库、修改个人信息等这个操作先做一做。
配置SSH公钥及创建远程仓库
2、设置本机绑定SSH公钥,实现免密码登录!(免密码登录,这一步挺重要的,码云是远程仓库,我们是平时工作在本地仓库! )
#进入C: \users\Administrator\.ssh目录
#生成公钥
ssh-keygen
操作如下:
点击账号设置,里面有个ssh公钥。
我们进到电脑用户目录下,有个.ssh文件夹:
C:\Users\kongdeyi\.ssh
该目录下右键git bash here,然后执行ssh-keygen,也可执行ssh-keygen -t rsa,-t为加密, rsa为使用官方推荐的rsa加密算法进行加密。然后一路回车下去。
kongdeyi@DESKTOP-TJP7C4E MINGW64 ~/.ssh
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/kongdeyi/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/kongdeyi/.ssh/id_rsa
Your public key has been saved in /c/Users/kongdeyi/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:DmCfOW7dtgzH5Tn+34G65qZkGJQurFLSRKmTVrK9ruw kongdeyi@DESKTOP-TJP7C4E
The key's randomart image is:
+---[RSA 3072]----+
| .. |
| ..o . |
| B.o o |
| *oo.ooo |
|...o.o*oS . |
| o....=oo o .. |
| ... o.+o= +. . |
|. .. . o= =.. o|
|.E. .B+o...o|
+----[SHA256]-----+
生成完后,C:\Users\kongdeyi\.ssh该目录下就会多了id_rsa文件和id_rsa.pub文件。
3、将公钥信息public key添加到码云账户中即可!
我们打开C:\Users\kongdeyi\.ssh目录下的id_rsa.pub文件,这个pub是公钥,打开后复制里面的公钥到gitee上用户设置中的ssh中的公钥文本框中,点击下面的确定输入验证的用户密码即可添加成功。
4、使用码云创建一个自己的仓库!
点击导航栏上方的加号即可新建一个仓库
5、克隆仓库到本地
点进某个仓库,点击复制https地址,然后在git bash中使用git clone即可:
私有仓库多人协调开发
点击管理->仓库成员管理->开发者,邀请后审核通过即可一起开发了。
使用Idea集成Git
1、远程仓库克隆下来的项目想使用直接全部复制到一个新项目中:
idea创建一个project,选springboot的项目,名叫git-xuexi,放到上面的gitcode目录下吧。
本gitcode目录下还有我们刚刚拉取的PharmacySystem仓库项目的文件夹。
我们直接将PharmacySystem文件夹中的内容全部选中拷贝到git-xuexi目录中,也就是新创建的springboot项目中,然后回到idea中,发现左侧项目文件颜色变成红色代表被git选中的状态,黑色的代表被git忽略的文件或文件夹,绿色代表提交了的文件或文件夹。
2、可点击左侧栏的commit提交相应文件,当我们修改了某个文件,该文件就变蓝色了,我们可右击该文件,然后git add,再次右击该文件git commit即可提交。也可在下方的terminal中输入git add . 和git commit -m "提交"来提交到本地库。
3、在下方的git按钮中可看到提交记录等信息。
4、可右击项目名位置,git->repository->push,然后选择文件和分支提交远程仓库。
也可在下方ternimal中git push的方提交:
git push 提交到当前分支
git push origin [分支名] 提交到指定分支
Git的分支
不同的分支,不同的作用
分支在GIT中相对较难,分支就是科幻电影里面的平行宇宙,如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,我们就需要处理一些问题了!
git分支中常用指令︰
# 列出所有本地分支
git branch
#列出所有远程分支git branch -r
#新建一个分支,但依然停留在当前分支
git branch [branch-name]
git switch dev1 //切换到dev1分支
#新建一个分支,并切换到该分支
git checkout -b [branch]
git push 提交到当前分支
git push origin [分支名] 提交到指定分支
# 合并指定分支到当前分支git merge [branch]
#删除分支
git branch -d [branch-name]
#删除远程分支
git push origin --delete [branch-name]git branch -dr [remote/branch]
多个分支如果并行执行,就会导致我们代码不冲突,也就是同时存在多个版本!
但如果出现两个人修改了同一个分支的同一个文件。
web-api -A( Restful.xx() )
web-admin -B会调用A(修改了A的代码!)web-app -C会调用B和A的代码
如果了冲突了就需要协商即可!
如果同一个文件在合并分支时都被修改了则会引起冲突∶解决的办法是我们可以修改冲突文件后重新提交Ⅰ选择要保留他的代码还是你的代码!
master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
idea中右击项目名git->repository-branches也可checkout或merge合并
注意:
master主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
git后续说明
码云上最下方导航栏如https://gitee.com/kongdeyi123/官网上有给git大全:Git 大全 - Gitee.com
里面有各种git资料和git命令大全
相关文章:

Git的基本使用笔记——狂神说
版本控制 版本迭代, 版本控制( Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。 实现跨区域多人协同开发 追踪和记载一个或者多个文件的…...
【小程序】外部二维码扫码打开微信小程序并跳转到指定页面
外部二维码扫码打开微信小程序并跳转到指定页面 您需要使用微信提供的跳转链接和相关参数。以下是实现的步骤: 生成跳转链接:使用以下链接格式生成跳转链接,其中APPID是您的小程序的 AppID,PATH是您要跳转的页面路径,…...
bazel安装
安装 首先安装一下 Bazel 环境。参考 https://bazel.build/install。我是在 Ubuntu 上实验的,所以安装过程参考的是:https://bazel.build/install/ubuntu,有很多种安装方法,我选择的是使用二进制安装程序。这个具体参考的又是 ht…...
Typescript的class语法[类]的操作和应用
TypeScript 是一种面向对象的编程语言,它扩展了 JavaScript,为其添加了类型系统和其他一些特性。TypeScript 的 class 语法可以让开发者更加方便地使用面向对象的编程方式。本文将详细介绍 TypeScript 的 class 语法的操作和应用,并提供代码案…...

OPENCV实现暴力特征匹配
# -*- coding:utf-8 -*- """ 作者:794919561 日期:2023/9/1 """ import cv2 import numpy as np# 读...

揭秘亚马逊Amazon测评,掌握细节和技巧,提升产品销量和评论数量
亚马逊是全球最大的跨境电商平台,拥有全球65个国家的几十个网站。对于跨境卖家来说,亚马逊是最值得选择的平台之一。 亚马逊的八大站点分别是美国、加拿大、墨西哥、欧洲、澳大利亚、日本、中东和巴西。 美国站点是全球最大的零售市场,拥有…...

Linux线程互斥
目录 一、线程不安全 1.线程不安全现象 2.线程不安全程序的特质 3.线程不安全程序的原因 二、线程互斥 1.基本概念 2.锁 (1)认识锁 (2)互斥锁的使用 (3)代码的改造 3.锁的本质 (1&a…...

【仿写spring之ioc篇】三、检查是否实现了Aware接口并且执行对应的方法
Aware接口 Aware接口中只是设置了对应的set方法,目前只定义了三个Aware 以BeanNameAware为例 package com.ez4sterben.spring.ioc.factory.aware;/*** bean名字清楚** author ez4sterben* date 2023/08/31*/ public interface BeanNameAware {/*** 设置beanName* …...

C++ 异常处理
C 异常(Exception)是指在程序运行时产生的特殊情况,例如,尝试除以零的操作。异常提供了一种转移程序控制权的方式,异常处理涉及到三个关键字:try、catch、throw。 throw: 当问题出现时,程序会抛出一个异常。这是通过…...
OJ练习第157题——单词拆分
单词拆分 力扣链接:139. 单词拆分 题目描述 给你一个字符串 s 和一个字符串列表 wordDict 作为字典。请你判断是否可以利用字典中出现的单词拼接出 s 。 注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。 示例 …...

若依tab-content面板失效、使用load的解决方法(附详细步骤)
【版权所有,文章允许转载,但须以链接方式注明源地址,否则追究法律责任】【创作不易,点个赞就是对我最大的支持】 前言 仅作为学习笔记,供大家参考 总结的不错的话,记得点赞收藏关注哦! 思路&…...

2023年03月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试
第1题:拼点游戏 C和S两位同学一起玩拼点游戏。有一堆白色卡牌和一堆蓝色卡牌,每张卡牌上写了一个整数点数。C随机抽取n张白色卡牌,S随机抽取n张蓝色卡牌,他们进行n回合拼点,每次两人各出一张卡牌,点数大者获…...

Android安卓实战项目(12)—关于身体分析,BMI计算,喝水提醒,食物卡路里计算APP【支持中英文切换】生活助手类APP(源码在文末)
Android安卓实战项目(12)—关于身体分析,BMI计算,喝水提醒,食物卡路里计算APP【支持中英文切换】生活助手类APP(源码在文末🐕🐕🐕) 一.项目运行介绍 B站演示…...

Hadoop 3.2.4 集群搭建详细图文教程
目录 一、集群简介 二、Hadoop 集群部署方式 三、集群安装 3.1 集群角色规划 3.2 服务器基础环境准备 3.2.1 环境初始化 3.2.2 ssh 免密登录(在 hadoop01 上执行) 3.2.3 各个节点上安装 JDK 1.8 环境 3.3 安装 Hadoop 3.4 Hadoop 安装包目…...
STL的学习之一
1)STL扫盲 1)C标准库和标准模板库是不一样的 2)标准模板库是用泛型编程方式编写的函数或者类库; 3) SGI STL linux一般用,P.J.Plauger STL,visual2017 windows用 STL六大组件 : 容器,迭代器 STL 算法(说白了就是函数…...
如何使用Python进行数据科学实验?
使用Python进行数据科学实验通常需要以下步骤: 以上仅为使用Python进行数据科学实验的基本步骤,具体实验过程会根据具体问题和数据集的特点而有所不同。可以进一步学习和探索相关的数据科学和机器学习技术,以提高实验的效果和表现。 安装Pyt…...

华为数通方向HCIP-DataCom H12-821题库(拖拽题,知识点总结)
以下是我在现有题库中整理的需要重点关注的考点内容,如有遗漏小伙伴可以留言补充。...
第三课:C++实现PDF去水印
PDF去水印是一项非常复杂的任务,需要一定的计算机图形学知识和技术,也需要使用到一些专业的工具库。以下是一种可能的实现方法: 首先,需要将PDF文件解析成一系列图形元素,包括文字、矢量图形等。可以使用开源库Poppler或MuPDF来解析PDF文件。 接下来,需要判断PDF文件是否…...
实现Android分布式协同办公:将待办事件App与本地Web服务结合
AndServer AndServer 是 Android 平台的 Web Server 和 Web Framework,它基于编译时注解提供了类似 SpringMVC 的注解和功能。 Github :https://github.com/yanzhenjie/AndServer使用文档:https://yanzhenjie.com/AndServer/业务需求 实现待办事件APP本地启动Web服务,将本…...

VMware12.1.1安装Centos7
VMware12.1.1安装Centos7 1、下载相关软件 1.1 Centos7下载 官方下载链接: http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso 1.2 VMware Workstation下载 VMware Workstation 12.1.1官方原版下载: https://dow…...

Linux应用开发之网络套接字编程(实例篇)
服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

工业安全零事故的智能守护者:一体化AI智能安防平台
前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...

现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
css的定位(position)详解:相对定位 绝对定位 固定定位
在 CSS 中,元素的定位通过 position 属性控制,共有 5 种定位模式:static(静态定位)、relative(相对定位)、absolute(绝对定位)、fixed(固定定位)和…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...

针对药品仓库的效期管理问题,如何利用WMS系统“破局”
案例: 某医药分销企业,主要经营各类药品的批发与零售。由于药品的特殊性,效期管理至关重要,但该企业一直面临效期问题的困扰。在未使用WMS系统之前,其药品入库、存储、出库等环节的效期管理主要依赖人工记录与检查。库…...
【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析
1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器(TI)推出的一款 汽车级同步降压转换器(DC-DC开关稳压器),属于高性能电源管理芯片。核心特性包括: 输入电压范围:2.95V–6V,输…...
CppCon 2015 学习:REFLECTION TECHNIQUES IN C++
关于 Reflection(反射) 这个概念,总结一下: Reflection(反射)是什么? 反射是对类型的自我检查能力(Introspection) 可以查看类的成员变量、成员函数等信息。反射允许枚…...