Git教程

文章目录

  • Git 介绍
  • GIt历史
  • Git 安装
  • 环境配置
  • 工作区、缓存区和仓库区(版本库)
    • 工作区(工作目录)
    • 暂存区
    • 仓库区
    • git工作目录下文件的装填
  • Git 生成公钥及添加到gitlab或Gerrit上
  • Git常用命令
    • git stauts
    • git statu -s
    • git add
    • git commit
    • git reset
      • 1. git reset --hard
      • 2. git reset HEAD
      • 3. `git reset --hard`
    • git reflog
    • git log
    • git checkout
    • git diff
    • git stash
    • git rebase
    • git branch
    • git clean
    • git remote
    • git fetch
    • git pull
    • git push
      • git push <远程主机名> <本地分支名> : <远程分支名>
    • git blame
  • git 常用举例
    • git log输出格式
    • 查看一个文件提交的提交记录
      • 查看一个文件的提交记录
      • 查看单个文件提交记录及内容
      • 查看某次提交中的某个文件变化
      • 显示每次提交的diff
  • 其他问题
  • 分支管理
    • 合并模式
    • 合并冲突
  • git 打补丁
  • 注意事项
  • 参考链接:

Git 介绍

GIt历史

Git 安装

环境配置

  1. git config --list 查看信息

  2. git config --global user.name “your name” // 设置username

    git config --global user.name "yourname"
    
  3. git config --global user.email “your_email@youremail.com” // 设置邮箱

  4. git config user.name 查看username

工作区、缓存区和仓库区(版本库)

在这里插入图片描述

工作区(工作目录)

就是你在电脑里能看到的目录。 对于添加、修改、删除文件的操作,都发生在工作区中。包含.git文件夹的目录就是工作目录,主要用于存放开发的代码

暂存区

暂存区指将工作区中的操作完成小阶段的存储,是版本库的一部分

仓库区

工作区有一个隐藏目录.git,这个不是工作区,而是git的版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等,其中最重要的就是称为stage(或者叫index)的暂存区,仓库区中记录的各版本是可以查看并回退的,但是在暂存区的版本一旦提交就再也没有了。
在这里插入图片描述
因为我们创建git版本库时,git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区【计算机的缓存区】,然后,一次性提交暂存区的所有修改,创建一个版本,放到master分支中。HEAD永远指向Master分支中的最新版本的

git工作目录下文件的装填

Git工作目录下的文件存在两种状态:

  1. untracked 未跟踪(未被纳入版本控制)
    比如说新建了个文件,没有git add。
  2. tracked 已跟踪的三种状态(被纳入版本控制)
    • Unmodified 未修改状态
    • Modified 已修改状态
    • Staged 已暂存状态

Git 生成公钥及添加到gitlab或Gerrit上

通过SSH拉取代码时,实际上是通过公钥的验证机制来实现身份认证。具体过程如下:
1. 在本地电脑上,使用命令ssh-keygen生成一对公钥和私钥,将公钥保存在本地电脑的一个文件中(例如~/.ssh/id_rsa.pub)。
2. 将公钥(即上一步生成的文件中的内容)复制到服务器上。
3. 当你使用SSH协议从本地电脑连接到服务器并进行代码拉取或推送时,Git会自动查找本地电脑上的私钥,然后使用该私钥对身份进行验证,以确认是本地电脑所有者访问服务器。
4. 如果公钥与私钥匹配,服务器将接受身份验证并允许你访问代码库。
总之,通过SSH拉取代码时,需要确保本地电脑上的公钥已经添加到服务器中,以便在进行身份验证时可以让服务器确认你的身份。

  1. 进入ssh目录
    cd ~/.ssh
  2. 查看是否生成公钥
    ls
    2.1 若存在,则目录下会有后缀为.pub的文件,如果不存在就自己生成公钥
    在这里插入图片描述
    2.2 如果不存在,生成公钥
      先通过 git config --list 查看自己的邮箱
      再通过ssh-keygen -t rsa -C "你的邮箱"命令生成公钥
  3. 查看公钥
    cat id_rsa.pub
    在这里插入图片描述
  4. 复制公钥分别添加到gitlab和Gerrit上
    git lab添加公钥如下:
    在这里插入图片描述
    gerrit添加和gitlab步骤一样。

Git常用命令

git stauts

查看文件状态

git statu -s

输出更简洁的文件状态。

git add

git add 命令可将该文件添加到暂存区。

  1. git add 【file】【file2】…

    添加一个或多个文件到暂存区

  2. git add 【dir】

    添加指定目录到暂存区,包括子目录

  3. git add .

    添加当前目录下的所有文件到暂存区

  4. git add -A (git add --all 的简写形式)

    它会将当前整个工作区中所有的文件改动提交至暂存区,包括新增、修改和被删除的文件,不受当前所在目录限制。

  5. git add *.c

    提交以.c结尾的文件。

git commit

git commit 命令一次性将暂存区所有内容添加到本地仓库中,并创建一个版本。

  1. git commit -m [message]

    提交暂存区到本地仓库中。 [message] 是备注消息

  2. git commit [file1] [file2] … -m [message]

    提交暂存区的指定文件到仓库区。

  3. git commit -a 或者 git commit -am [message]

    如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步,直接来提交。-a命令针对是tracked的文件(即已经放入仓库中的文件)。

  4. git commit --amend

     在上一个commitID上继续提交,不新增新的提交,默认打开VIM编辑器,是否要修改commit信息
    
  5. git commit --amend --no-edit

     可以不修改commit信息直接进行提交
    

    如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认会打开 vim。

    注: 在 Linux 系统中,commit 信息使用单引号 ',Windows 系统,commit 信息使用双引号 "。所以在 git bash 中 git commit -m ‘提交说明’ 这样是可以的,在 Windows 命令行中就要使用双引号 git commit -m “提交说明”。

git reset

1. git reset --hard

后面不跟版本号,清除暂存区和工作区中tracked的改动。不会清除untracked的改动

其中HEAD表示当前分支最新版本【请记死】
在这里插入图片描述

HEAD^ 表示当前版本的前一个版本,

git reset --hard HEAD^

HEAD^^表示当前版本的前前个版本,也可以使用HEAD~1表示当前版本的前一个版本,HEAD~100表示当前版本的前100版本。

提示:这种都表示回退操作

git reset --hrad 版本号 

回到指定的版本,这个存在两种情况。

  1. git reset --hard commit_id
    commit_id 是完整的。并且是git log 能够查到的 否则会报错 unknown revision or path not in the working tree.
  2. git reset --hard (通过 git reflog 查到的)

为什么有两种情况呢,存在这种场景,比方说我们分别提交了两个版本1 和 版本2 ,提交顺序:版本1在前,版本2在后,当前Head指向版本2,现在执行git reset --hard HEAD^ 回退了一下,git log 看到的只有版本1的情况。即使你知道版本2的完整的commit_id ,执行git reset --hard commit_id 报错,只能通过
在这里插入图片描述
git reset --hard b79613 切换到版本2。

git reset --hrad origin/《分支名》

回退到某个远程分支某个commit。
有这样的场景,我们和远程分支相同的内容下,又做了修改,但是又想回退到和远程分支相同的情况,就可以执行这个。

2. git reset HEAD

撤销暂存区中的修改,从暂存区回到了工作区,既提交了,想撤回。但是本地的修改并不会消失(工作区的内容不会改变)。

  1. git reset HEAD …

    撤销指定文件的add
    也可以指定不同版本的file

  2. git reset HEAD *

    撤销本地add的所有文件

  3. git reset HEAD *.txt

3. git reset --hard

git reflog

可以查看所有版本的历史信息
在这里插入图片描述
git reflog命令中保留了从clone仓库开始,用户所有在本地库中的操作。

参考:https://www.jianshu.com/p/7e4cef3863e7

git log

git log 命令只可以查看到HEAD指针及其之前的版本信息,如果版本发生过回退操作,则可能会出现,HEAD指针之后仍存在历史提交版本的情况,而这些提交版本信息通过git log命令是看不到的。

git checkout

  1. git checkout -- <文件> <文件> ...

    git checkout -- <文件>来丢弃工作区指定文件的改动

2. git checkout *

丢弃工作区中所有文件的改动
  1. git checkout -- *.txt

git diff

对比两个版本的差异

  1. git diff

    对比的是工作区修改之前和修改之后的差异。

  2. git diff 版本1 版本2

    对比的是版本1 和版本2 之间的差异

    git diff HEAD HEAD^
    
  3. git diff 分支1 分支2

  4. git diff 文件

git stash

场景: 当你接到一个修复一个代号001的bug的任务时,很自然地,你想创建一个分支bug-001来修复它,但是,等等,当前分支正在上进行的工作还没有提交:
并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?

在这里插入图片描述
git stash :git还提供了一个stash功能,可以把当前工作现场“储藏“起来,等以后恢复现场后继续工作。即缓存起来。

  1. git stash save "save message"
    执行存储时,添加备注,方便查找,只有git stash 也要可以的,但查找时不方便识别。

  2. git stash list
    查看stash了哪些存储

  3. git stash show
    显示做了哪些改动,默认show第一个存储,如果要显示其他存贮,后面加stash@{$num},比如第二个 git stash show stash@{1}
    在这里插入图片描述

  4. git stash apply
    应用某个存储,但不会把存储从存储列表中删除,默认使用第一个存储,即stash@{0},如果要使用其他个,git stash apply stash@{$num} , 比如第二个:git stash apply stash@{1}

  5. git stash pop
    命令恢复之前缓存的工作目录,将缓存堆栈中的对应stash删除,并将对应修改应用到当前的工作目录下,默认为第一个stash,即stash@{0},如果要应用并删除其他stash,命令:git stash pop stash@{$num} ,比如应用并删除第二个:git stash pop stash@{1}

  6. git stash drop stash@{$num}
    丢弃stash@{$num}存储,从列表中删除这个存储

  7. git stash clear
    删除所有缓存的stash

  8. 注意 untracked的文件,执行stash是不会被存储的。
    在这里插入图片描述

    新建了一个e.txt,e.txt并没有被加入到版本控制,git add 把文件加入到版本控制之后才行。

git rebase

参考:
https://blog.csdn.net/weixin_42310154/article/details/119004977
https://blog.csdn.net/qq_39512532/article/details/110260369

git branch

后面什么都不写,列出所有本地分支

  1. git branch -r

    列出所有远程分支

  2. git branch -a

    列出所有本地分支和远程分支

  3. git branch <分支名>

    创建分支

  4. git checkoout -b <分支名>

    创建并切换分支

  5. git checkout -b 本地分支名x origin/远程分支名x

    使用该方式会在本地新建分支x,并自动切换到该本地分支x。采用此种方法建立的本地分支会和远程分支建立映射关系(跟踪远程分支)。

  6. git checkout <分支名>

    切换分支

  7. git merge <分支名>

    合并分支到当前分支

  8. git branch -d <分支名>

    删除分支

  9. git branch -m <旧分支名字> <新分支名字>

    git branch -m master main
    把master分支名字,改为新分支名字。

git clean

  1. git clean -f

    删除当前目录下所有untracked的文件. 它不会删除.gitignore文件里面指定 的文件夹和文件, 不管这些文件有没有被track过

  2. git clean -df

    删除当前目录下没有untracked的文件和文件夹

    和git reset --hard 是一对好基友,结合使用他们能让你的工作目录完全回退到最近一次commit的时候

git remote

如果想查看已经配置的远程仓库服务器,可以运行 git remote 命令。 它会列出指定的每一个远程服务器的简写。 如果已经克隆了远程仓库,那么至少应该能看到 origin ,这是 Git 克隆的仓库服务器的默认名字

  1. git remote

  2. git remote -v
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/aea741abe2b54dfba924100d5868801f.png

  3. git remote add 添加一个新的远程 Git 仓库,同时指定一个可以引用的简写
    在这里插入图片描述
    在这里插入图片描述
    这个使用场景式:我本地已经创建了git仓库,但是我想和远程仓库建立联系。即通过git remote add <shortname> <url> 添加远程仓库。
    在这里插入图片描述

  4. git remote rm

    在这里插入图片描述

    如果因为一些原因想要移除一个远程仓库 ,可以使用 git remote rm
    注意:此命令只是从本地移除远程仓库的记录,并不会真正影响到远程仓库

git fetch

git fetch 是从远程仓库获取最新版本到本地仓库,不会自动merge
在这里插入图片描述

git pull

git pull 是从远程仓库获取最新版本并merge到本地仓库
在这里插入图片描述

如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数**–allow-unrelated-histories**

git push

当你想分享你的代码时,可以将其推送到远程仓库。 命令形式:git push [remote-name] [branch-name]
在这里插入图片描述
远程仓库 master分支多了 hello.txt文件。

git push <远程主机名> <本地分支名> : <远程分支名>

git push origin HEAD:refs/for/master

git push 肯定是推送
origin : 是远程的库的名字
HEAD: 是一个特别的指针,它是一个指向你正在工作的本地分支的指针,
可以把它当做本地分支的别名,git这样就可以知道你工作在哪个分支
refs/for :这个不是git的规则,而是gerrit的规则, 意义在于我们提交代码到服务器之后是需要经过 code review 之后才能进行merge的
refs/heads: 不需要

简单来说: refs/for/mybranch需要经过code review之后才可以提交;refs/heads/mybranch不需要code review

git blame

git blame用来追溯一个指定文件的历史修改记录

git blame用来追溯一个指定文件的历史修改记录。它是显示任何文件中每行最后一次修改的提交记录所以,如果你在代码中看到有一个bug,你可以使用 git blame 标注这个文件,查看哪一次提交引入了这行。

命令用法:

git blame filename

可以使用 -L 指定文件的行数范围:

git blame -L n1,n2 filename

举例

git blame -L 69,82 Makefile		查看Makefile这个文件第69--82行最近一次的修改记录

git 常用举例

git log输出格式

git log --pretty是指定Git log命令的输出格式。

git log --pretty=oneline // 将每个commit 以一行显示。包括了commit的SHA-1值和提交信息的第一行

查看一个文件提交的提交记录

查看一个文件的提交记录

git log filename  // git log 直接与文件相关的提交记录
git log --pretty=oneline filename 

查看单个文件提交记录及内容

git log -p filename

查看某次提交中的某个文件变化

git show commitId filename //使用git show命令 后跟commitId和文件名

显示每次提交的diff

git log -p filename

其他问题

  1. 克隆http和ssh有什么区别?
    http不管你是谁,都可以下载【克隆】/提交项目代码。每次提交代码需要你输入用户名和密码;
    SSH,如果你的电脑需要与github上的仓库交互,那么就要把你的电脑的ssh公钥添加到这个github账户上。
    比如工作中你是ZXC这个项目组的成员,拥有者,你把你每天的代码——本地电脑跟github上公司项目交互,你得是这个项目的成员或者拥有者才能提交代码,这个方式就不需要输入用户名和密码提交代码,直接提交。工作中,你的老大会找你要你的github账号,邀请你到项目组,你是小组成员,为了方便提交代码,此时用SSH方式,工作中都是这种方式。SSH方式有一个条件要记住:你是项目的拥有者或组成员才可以使用此方法。知道这些就够了。

分支管理

(1)一开始的时候,master分支是一条线,git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点:
在这里插入图片描述
每次提交,master分支都会向前移动一步,这样,随着你不断提交,master分支的线也越来越长

(2)当我们创建新的分支,例如dev时,git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:
在这里插入图片描述

git创建一个分支很快,因为除了增加一个dev指针,改变HEAD的指向,工作区的文件都没有任何变化。

3)不过,从现在开始,对工作区的修改和提交就是针对dev分支了,比如新提交一次后,dev指针往前移动一步,而master指针不变:
在这里插入图片描述
(4)假如我们在dev上的工作完成了,就可以把dev合并到master上。git怎么合并呢?最简单的方法,就是直接把master指向dev的当前提交,就完成了合并
在这里插入图片描述
git合并分支也很快,就改改指针,工作区内容也不变。
(5)合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支:
在这里插入图片描述

合并模式

  1. Fast-forward信息,Git告诉我们,这次合并是“快进模式“,也就是直接把master指向dev的当前提交,仅仅是更新了分支的指针,不会产生合并提交,所以合并速度非常快。默认的合并行为
  2. 合并冲突,遇到合并冲突的时候,需要处理冲突内容,然后再add、commit提交。
  3. 但是有些快速合并不能成功而且合并时没有冲突,这个时候git会帮我们在合并之后做一次新的提交,但这种模式下,删除分支后,会丢掉分支信息。使用的命令是 git merge --no-ff <分支名称> 不使用默认快速合并。

合并冲突

在master分支和dev分支对code.text文件有相同的位置修改了内容。合并两个分支的时候就会有冲突。
在这里插入图片描述

git用<<<<<<<<,========,>>>>>>>>标记不同分支的内容,我们修改如下后保存:
在这里插入图片描述
手动解决的方法就是删除箭头所指。然后再提交。

git 打补丁

参考:Git 补丁 —— diff 和 patch 使用详解

注意事项

  1. 跨系统拷贝git的代码,(比方说,你在Linux上拉取的代码,直接复制到Windows上去执行git操作),由于文件的属性变了,所以git操作会出现一些问题。如果想要在Windows上操作,尽量跨系拷贝,直接拉取代码即可。

参考链接:

强推:https://blog.csdn.net/YJG7D314/article/details/104551896

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

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

相关文章

Post-Process1-水下

一、新建第三人称游戏项目&#xff0c;我这里选择C&#xff0c;你也可以选择Blueprint。 新建一个Level&#xff0c;命名为DemoUnderWater 保存一下&#xff0c;命名为DownUnderWater 添加水插件 选择Yes 勾选Show Engine Content和Show Plugin Content&#xff0c;在左侧可以看…

图(graph)的遍历----深度优先(DFS)遍历

目录 前言 深度优先遍历&#xff08;DFS&#xff09; 1.基本概念 2.算法思想 3.二叉树的深度优先遍历&#xff08;例子&#xff09; 图的深度优先遍历 1.图(graph)邻接矩阵的深度优先遍历 思路分析 代码实现 2.图(graph)邻接表的深度优先遍历 思路分析 代码实现 递…

【Web】| CSS Float (浮动)的使用方法

Float&#xff08;浮动&#xff09;概念 CSS的Float&#xff08;浮动&#xff09;&#xff0c;会使得元素向左或者向右移动&#xff0c;其它周围元素也会重新排列。 Float浮动&#xff0c;往往是用于图像&#xff0c;但它的布局一样非常有效。 元素如何浮动 元素的水平方向…

【MySQL架构篇】MySQL字符集、大小写规范及默认数据库

文章目录 1. 字符集与字符集比较规则2. 大小写规范3. 默认数据库4. 与文件系统相关 1. 字符集与字符集比较规则 MySQL有4个级别的字符集和比较规则&#xff0c;分别是 服务器级别数据库级别表级别列级别 当创建对应表或列未指定字符集时&#xff0c;默认会取其上一级别的字符…

MySQL中的表操作,配置文件,储存引擎,数据类型

MySQL中的表操作 1 查库&#xff08;已密码登陆mysql&#xff09; show databases; 2 添加库 create database t1; 3 表操作 1选定操作库 use t1 2在库里添加表格式 create table t1(id int, name varchar(32), gender varchar(32),age int); 3往表里添加具体元素 insert…

OpenCV 笔记(2):图像的属性以及像素相关的操作

Part11. 图像的属性 11.1 Mat 的主要属性 在前文中&#xff0c;我们大致了解了 Mat 的基本结构以及它的创建与赋值。接下来我们通过一个例子&#xff0c;来看看 Mat 所包含的常用属性。 先创建一个 3*4 的四通道的矩阵&#xff0c;并打印出其相关的属性&#xff0c;稍后会详细…

django建站过程(2)创建第一个应用程序页面

创建第一个应用程序页面 设置第一个页面【settings.py,urls.py,views.py】settings.pyurls.pyviews.py django是由一系列应用程序组成&#xff0c;协同工作&#xff0c;让项目成为一个整体。前面已创建了一个应用程序baseapp,使用的命令 python manage.py startapp baseapps这…

2023全新小程序广告流量主奖励发放系统源码 流量变现系统

2023全新小程序广告流量主奖励发放系统源码 流量变现系统 分享软件&#xff0c;吃瓜视频&#xff0c;或其他资源内容&#xff0c;通过用户付费买会员来变现&#xff0c;用户需要付费&#xff0c;有些人喜欢白嫖&#xff0c;所以会流失一部分用户&#xff0c;所以就写了这个系统…

RustCC分享会|非凸科技与开发者共同探讨Rust安全进化

10月15日&#xff0c;非凸科技受邀参加RustCC联合多家开发者社区组织的Global Tour of Rust技术分享活动&#xff0c;旨在为Rust开发者提供交流互动的平台&#xff0c;分享Rust语言的知识、经验和最佳实践。 活动上&#xff0c;非凸科技成都分公司研发总监赵海峰以“Rust安全进…

系统架构师备考倒计时13天(每日知识点)

1. 数据仓库四大特点 面向主题的。操作型数据库的数据组织面向事务处理任务&#xff0c;各个业务系统之间各自分离&#xff0c;而数据仓库中的数据是按照一定的主题域进行组织的。集成的。数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整…

TechSmith Camtasia 2023 for Mac 屏幕录像视频录制编辑软件

​ TechSmith Camtasia for Mac 2023中文破解版 是一款专业的屏幕录像视频录制编辑软件&#xff0c;非常容易就可以获得精彩的截屏视频。创建引人注目的培训&#xff0c;演示和演示视频。Camtasia 屏幕录制软件简化&#xff0c;直观&#xff0c;让您看起来像专业人士。利用Camt…

安卓使用android studio跨进程通信之AIDL

我写这篇文章不想从最基础的介绍开始,我直接上步骤吧. 1.创建服务端 1.1:创建服务端项目:我的as版本比较高,页面就是这样的 1.2:创建AIDL文件,右键项目,选中aidl aidl名字可以自定义也可以默认 basicTypes是自带的,可以删掉,也可以不删,然后把你自己所需的接口写上去 1.3:创建…

让uniGUI支持https

今天在专家的帮助下&#xff0c;成功的让uniGUI支持https了。 首先&#xff0c;去申请个**的证书。我同事去阿里申请的&#xff0c;申请回是一个zip文件&#xff0c;里面有两个文件&#xff0c;一个扩展是per&#xff0c;一个key 然后&#xff0c;把这两个证书文件放到uniGUI…

06、Python 序列 与 列表 与 元组 的关系和创建 和 简单使用

目录 序列元组与列表关系总结 创建元组与列表方式一创建元组注意点 创建元组与列表方式二简单使用通过索引访问元素子序列序列加法序列乘法in运算 了解Python序列 创建列表和元组 通过索引访问元素 子序列 序列运算 序列 所谓序列&#xff0c;指的是一种包含多项数据的数据结…

【蓝桥每日一题]-动态规划 (保姆级教程 篇11)#方格取数2.0 #传纸条

目录 题目&#xff1a;方格取数 思路&#xff1a; 题目&#xff1a;传纸条 思路&#xff1a; 题目&#xff1a;方格取数 &#xff08;跑两次&#xff09; 思路&#xff1a; 如果记录一种方案后再去跑另一个方案&#xff0c;影响因素太多了&#xff0c;所以两个方案要同时开…

FL Studio 21 for Mac中文破解版百度网盘免费下载安装激活

FL Studio 21 for Mac中文破解版是Mac系统中的一款水果音乐编辑软件&#xff0c;提供多种插件&#xff0c;包括采样器、合成器和效果器&#xff0c;可编辑不同风格的音乐作品&#xff0c;Pattern/Song双模式&#xff0c;可兼容第三方插件和音效包&#xff0c;为您的创意插上翅膀…

Unity3D 基础——鼠标悬停更改物体颜色,移走恢复

方法介绍 【unity学习笔记】OnMouseEnter、OnMouseOver、OnMouseExit_unity onmouseover_一白梦人的博客-CSDN博客https://blog.csdn.net/a1208498468/article/details/117856445 GetComponent()详解_getcomponet<> 动态名称-CSDN博客https://blog.csdn.net/kaixindrag…

uniapp 测试 app 到安卓模拟器部署方法以及常见错误解决 无废话

uniapp 测试 app 到安卓模拟器 1.1 安装安卓模拟器 https://www.yeshen.com/ 1.2 查看安装模拟器端口 右击夜神模拟器属性打开文件位置 在打开的文件夹找到 debugReport 双击运行查看运行出来的端口号 一般都是&#xff1a;62001 1.3 HBuilder 配置 选中项目运行运行到手机…

自然语言处理---Transformer机制详解之ELMo模型介绍

1 ELMo简介 ELMo是2018年3月由华盛顿大学提出的一种预训练模型. ELMo的全称是Embeddings from Language Models.ELMo模型的提出源于论文<< Deep Contextualized Word Representations >>.ELMo模型提出的动机源于研究人员认为一个好的预训练语言模型应该能够包含丰…

opencv dnn模块 示例(19) 目标检测 object_detection 之 yolox

文章目录 0、前言1、网络介绍1.1、输入1.2、Backbone主干网络1.3、Neck1.4、Prediction预测输出1.4.1、Decoupled Head解耦头1.4.2、Anchor-Free1.4.3、标签分配1.4.4、Loss计算 1.5、Yolox-s、l、m、x系列1.6、轻量级网络研究1.6.1、轻量级网络1.6.2、数据增强的优缺点 1.7、Y…