史上最详细的git repo工具使用教程
史上最详细的git repo工具使用教程
repo是什么?
repo是Google开发的用于管理Android版本库的一个工具,repo是使用Python对git进行了一定的封装,并不是用于取代git,它简化了对多个Git版本库的管理。用repo管理的版本库都需要使用git命令来进行操作。
为什么要用repo?
项目模块化/组件化之后各模块也作为独立的 Git 仓库从主项目里剥离了出去,各模块各自管理自己的版本。Android源码引用了很多开源项目,每一个子项目都是一个Git仓库,每个Git仓库都有很多分支版本,为了方便统一管理各个子项目的Git仓库,需要一个上层工具批量进行处理,因此repo诞生。
repo也会建立一个Git仓库,用来记录当前Android版本下各个子项目的Git仓库分别处于哪一个分支,这个仓库通常叫做:manifest仓库(清单库)。
repo下载安装
下载地址:https://mirrors.tuna.tsinghua.edu.cn/git/git-repo ,将下载下来的文件命名为repo,放在PATH环境变量所包含的目录下面,例如可以放在/usr/local/bin
目录下(后面介绍均以放在/usr/local/bin
目录下为例)。
或者,直接使用curl命令下载:
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > /usr/local/bin/repo
最后,修改repo文件的执行权限:chmod 777 /usr/local/bin/repo
。
其实下载下来的repo文件只是一个使用Python编写的引导脚本(Google 称之为 Repo launcher,本质上是一个python脚本,可以使用vim打开的),完整的repo(即,repo的主体部分)还没有下载。
repo help
查看repo帮助说明,该帮助列举了repo所支持的子命令,及各个子命令的简要介绍。
如果需要查看某个具体子命令的详细介绍,执行命令repo help <command>
即可。例如查看repo init
的帮助,可以输入repo help init
。
上一小节已经提及到了,下载下来的repo只是一个引导脚本,完整的repo工具还没有下载,如下图所示,此时使用
repo help
只能看到init
和help
两个子命令,而且帮助信息中还会提示repo还未安装,需要执行repo init
安装。(需要注意repo init
需要跟参数的,后面会单独介绍repo init
的使用)
当执行完
repo init
下载了完整的repo工具之后,再执行repo help
就会看到repo更多的子命令。如下图所示:
repo version
命令格式:
repo version
查看repo的版本
repo selfupdate
命令格式:
repo selfupdate
用于 repo 自身的更新。如果有新版本的repo存在, 这个命令会升级repo到最新版本。通常这个动作在repo sync时会自动去做, 所以不需要最终用户手动去执行。
常用选项:
--no-repo-verify
:不要验证repo源码.
repo init
repo init命令
命令格式:
repo init [options] [manifest url]
例如:
repo init -u manifest_git_path -m manifest_file_name -b branch_name --repo-url=repo_url --no-repo-verify
命令效果:
首先当前目录产生一个.repo
目录
然后克隆一份repo的源代码到.repo/repo
下,里面存放了其他repo子命令,即repo的主体部分。
接着从manifest_git_path
仓库地址clone清单库到.repo/manifests
和.repo/manifests.git
目录。
同时.repo
目录下还包括manifest仓库(清单库)内容
常用选项:
-u
:指定Manifest库的Git访问路径。唯一必不可少的选项-m
:指定要使用的Manifest文件。不指定的话,默认为default.xml文件-b
:指定要使用Manifest仓库中的某个特定分支。--repo-url
:指定repo的远端repoGit库的访问路径。--no-repo-verify
:指定不要验证repo源码。--mirror
:创建远程存储库的副本,而不是客户端工作目录。该选项用于创建版本库镜像。使用该选项则在下一步repo sync
同步时,本地按照源的版本库组织方式进行组织,否则会按照 manifest.xml 指定的方式重新组织并检出到本地
修改获取repo的源码路径
前面已经说了下载下来的repo只是一个引导脚本,当执行repo init
的时候才会下载repo的主体部分,并存放在当前目录的.repo/repo
目录下。
这里就会涉及到一个问题,repo的主体部分是从哪里下载的?其实查看repo的引导脚本(/usr/local/bin/repo)可以发现,repo主体部分默认从https://gerrit.googlesource.com/git-repo
获取(即,执行repo init
命令时,不设置--repo-url
选项),这个网站需要科学上网才可以访问。
解决该问题可以使用其他镜像源来获取,例如使用清华源。具体执行上有多种方式,下面列举两种方式供参考:
方式一:
每次执行repo init时,增加选项--repo-url=https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
方式二:(建议)
设置环境变量REPO_URL
,例如:
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
可以将环境变量写在启动脚本中(如,/etc/profile
)
.repo文件夹简介
执行repo init
命令之后,会在当前目录创建一个.repo
文件夹。下面看看该文件夹下面都有什么东西吧。
$ tree .repo -L 1
.repo
├── manifests
├── manifests.git
├── manifest.xml
└── repo3 directories, 1 file
文件夹 | 描述 |
---|---|
manifests | manifest仓库(清单库)内容,即repo init 的-u 选项对应的仓库 |
manifests.git | manifest仓库(清单库)的.git 目录 |
manifest.xml | 指明当前生效的Manifest文件,即repo init 的-m 选项对应的参数(没有该选项时默认为default.xml) |
repo | repo 命令的主体,包含了最新的 repo 命令 |
manifest文件介绍
所谓manifest仓库(清单库)其实就是存放manifest(清单)文件的仓库,实际上可以是任意仓库,只要该仓库中存在repo init
命令-m
选项指定的manifest文件即可,清单库命名为manifest
只不过是一种约定俗成的写法罢了。
manifest仓库一般都会有一个default.xml文件,该文件为默认的manifest文件。
manifest文件格式
manifest文件是用XML文件的格式记录了本项目依赖的各个Git仓库的名称、地址,以及分支等信息。
下面举个实际的例子,看下manifest文件是什么样
<?xml version="1.0" encoding="UTF-8"?>
<manifest><remote fetch="ssh://git@git.software.team/learn-repo" name="origin" review="http://xxx.xxx.xxx:8080"/><default remote="origin" revision="master" sync-j="4" /><project name="build" path="build"><linkfile dest="build.sh" src="build.sh"/></project><project name="docs" path="docs"><copyfile dest="README.md" src="README.md"/></project><project name="third_party/openssl" path="third_party/openssl" revision="OpenSSL_1_1_1l" /><project name="src" path="src" revision="release" />
</manifest>
1. remote元素
fetch
:使用此remote的所有项目的Git URL前缀。 每个项目的名称都附加到此前缀以形成用于克隆项目的实际 URL。如果使用此remote的所有项目的前缀和manifest仓库前置一致的话,可以使用..
代替。name
:此清单文件唯一的短名称。此处指定的名称用作每个项目的.git/config
中的远程名称,因此可自动用于git fetch
、git remote
、git pull
和git push
等命令。review
:通过repo upload
将评论上传到的 Gerrit 服务器的主机名。 该属性是可选的; 如果未指定,则repo upload
将不起作用。
2. default元素
remote
:project部分不单独指定remote的话就使用default部分的。revision
:project部分不单独指定revision的话就使用default部分的。sync-j
:同步时(执行repo sync
命令时)使用的并行作业数
3. project元素
该部分定义了项目代码由哪些子仓库组成
name
:相对于remote部分fetch
指定的前缀的相对路径path
:把代码下载下来后在本地的相对于当前路径的相对路径revision
:是指下载下来的代码要checkout到哪个revision上,这里的revision可以是commit id、branch name、tag name,本质上都是commit id。default.xml中通常用branch name做revision,可以下载到并且checkout出该branch上最新的代码,标签和/或commit id在理论上应该有效,但尚未经过广泛测试。如果revision用commit id的话,那后面必须跟上upstream,upstream的值是个branch name。revision部分如果省略的话,就等于使用default部分定义的revision。
4. copyfile元素
project元素的子元素,每个元素描述了一对 src-dest 文件对。同步时(即执行repo sync
命令时)src
文件会被拷贝到dest
。通常会被用于 README 或 Makefile 或其他构建脚本。
dest
:是相对于当前目录(执行repo init
和repo sync
命令的目录)的路径
src
:是相对于project path的相对路径
5. linkfile元素
与copyfile
类似,只不过不是拷贝,而是建立软连接。
更多关于manifest文件的格式的介绍,可以在repo init
命令成功执行后,在代码根目录下的.repo/repo/docs
下看到相关文档说明(问:不会写manifest文件,就无法创建清单库,从而无法执行repo init怎么办?答:找个开源清单库执行repo init
即可,或者去github上下载一份repo的源码)。最简单的方式是直接去网站https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/HEAD/docs/manifest-format.md查看帮助。
repo sync
命令格式:
repo sync [<project>...]
初始化好一个 repo 工作目录后下一步就是把代码同步下来了,该命令用来下载新的更改并更新本地环境中的工作文件。如果您在未使用任何参数的情况下运行 repo sync
,则该操作会同步所有项目(所有项目是指manifest文件中所有的project元素)的文件。
<project>
:为manifest文件中project元素的name
属性或者path
属性的值。如果只需要同步某一个或者个别几个项目的话,就可以采用这种方法。
运行repo sync
后,将出现以下情况:
- 如果目标项目从未同步过,则
repo sync
相当于git clone
。远程代码库中的所有分支都会复制到本地项目目录中。 - 如果目标项目已同步过,则 repo sync 相当于以下命令:
其中git remote update git rebase origin/<BRANCH>
<BRANCH>
是本地项目目录中当前已检出的分支。如果本地分支没有在跟踪远程代码库中的分支,则相应项目不会发生任何同步。 - 如果
git rebase
操作导致合并冲突,那么您需要使用普通 Git 命令(例如git rebase --continue
)来解决冲突。
repo sync 运行成功后,指定项目中的代码会与远程代码库中的代码保持同步。
常用选项:
-d
:将指定项目切换回清单修订版本。如果项目当前属于某个主题分支,但只是临时需要清单修订版本,则此选项会有所帮助。-s
:同步到当前清单中清单服务器元素指定的一个已知的良好版本。-f
:即使某个项目同步失败,系统也会继续同步其他项目。-t
:使用对应 tag 里的 manifest 文件-m
:手动指定当前操作使用哪个 manifest 文件--force-sync
:如果需要,强制覆盖现有的 git 目录指向不同的对象目录。此操作可能会导致数据丢失
repo start 创建主题分支
命令格式:
repo start <newbranchname> [--all | <project>...]
创建并切换分支。刚克隆下来的代码是没有分支的,repo start
实际是对git checkout -b
命令的封装。
为指定的项目或所有的项目(若使用-all
),以清单文件中为设定的分支,创建特定的分支。
常用选项:
<newbranchname>
参数应简要说明您尝试对项目进行的更改。<project>
指定了将参与此主题分支的项目。
注意:
.
是一个非常实用的简写形式,用来代表当前工作目录中的项目。
这条指令与git checkout -b
还是有很大区别的。
git checkout -b
是在当前所在的分支的基础上创建特性分支。repo start
是在清单文件设定的分支的基础上创建特性分支。
repo status
命令格式:
repo status [<project>...]
查看文件状态。对于每个指定的项目,将工作树与临时区域(索引)以及此分支 (HEAD) 上的最近一次提交进行比较。在这三种状态存在差异之处显示每个文件的摘要行。
要仅查看当前分支的状态,请运行 repo status
。系统会按项目列出状态信息。对于项目中的每个文件,系统使用两个字母的代码来表示:
- 在第一列中,大写字母表示临时区域与上次提交状态之间的不同之处。
字母 含义 描述 - 无更改 HEAD 与索引中相同 A 已添加 不存在于 HEAD 中,但存在于索引中 M 已修改 存在于 HEAD 中,但索引中的文件已修改 D 已删除 存在于 HEAD 中,但不存在于索引中 R 已重命名 不存在于 HEAD 中,但索引中的文件的路径已更改 C 已复制 不存在于 HEAD 中,已从索引中的另一个文件复制 T 模式已更改 HEAD 与索引中的内容相同,但模式已更改 U 未合并 HEAD 与索引中的内容相同,但模式已更改 - 在第二列中,小写字母表示工作目录与索引之间的不同之处。
字母 含义 描述 - 新/未知 HEAD 与索引中相同 m 已修改 存在于索引中,也存在于工作树中(但已修改) d 已删除 存在于索引中,不存在于工作树中
两个表示状态的字母后面,显示文件名信息。如果有文件重名还会显示改变前后的文件名及文件的相似度。
repo checkout
命令格式:
repo checkout <branchname> [<project>...]
切换分支。 实际上是对git checkout命令的封装,但不能带-b
参数,所以不能用此命令来创建特性分支。
该命令等同于:repo forall [<project>...] -c git checkout <branchname>
repo branch
该命令等同于repo branches
命令格式:
repo branches [<project>...]
汇总当前所有可用的主题分支。
repo diff
命令格式:
repo diff [<project>...]
查看工作区文件差异。实际是对git diff
命令的封装,用于分别显示各个项目或指定项目工作区下的文件差异。在 commit 和工作目录之间使用 git diff
显示明显差异的更改。
repo stage
命令格式:
repo stage -i [<project>...]
把文件添加到index表中。实际上是对git add --interactive
命令的封装,用于挑选各个项目中的改动以加入暂存区。
常用选项:
-i
:表示git add --interactive
命令中的--interactive
,给出一个界面供用户选择。
repo forall
repo forall [<project>...] -c <command> [<arg>...]
在每个项目中运行指定的 shell 命令。通过 repo forall
可使用下列额外的环境变量:
REPO_PROJECT
:项目的名称。REPO_PATH
:项目在该工作区的相对路径。REPO_REMOTE
:项目远程仓库的名称。REPO_LREV
:manifest文件中revision属性,已转换为本地跟踪分支。如果您需要将manifest中revision值传递到某个本地运行的 Git 命令,则可使用此变量。REPO_RREV
:manifest文件中revision属性,与manifest文件中显示的名称完全一致。
常用选项:
-c
:要运行的命令和参数,即shell命令。此命令会通过 /bin/sh 进行求值,它之后的任何参数都将作为 shell 位置参数传递。-p
:在指定命令输出结果之前显示项目标头。这通过以下方式实现:将管道绑定到命令的 stdin、stdout 和 sterr 流,然后通过管道将所有输出结果传输到一个页面调度会话中显示的连续流中。-v
:显示该命令向 stderr 写入的消息。
注意:shell指令中有上述环境变量时,则需要用使用单引号把shell命令括起来。
示例:
- 打印项目列表
repo forall -c 'echo $REPO_PROJECT'
- 打印项目路径
repo forall -c 'echo $REPO_PATH'
repo prune
命令格式:
repo download {[project] change[/patchset]}...
删除已经合并分支。实际上是对git branch -d
命令的封装,该命令用于扫描项目的各个分支,并删除已经合并的分支。
repo abandon
命令格式:
repo abandon [--all | <branchname>] [<project>...]
删除指定分支。实际是对git brance -D
命令的封装。
repo upload
命令格式:
repo upload [--re --cc] [<project>]...
对于指定的项目,Repo 会将本地分支与最后一次 repo sync 时更新的远程分支进行比较。Repo 会提示您选择一个或多个尚未上传以供审核的分支。
注意:使用
repo upload
需要搭建gerrit环境,并且在manifest文件remote
元素中添加review
属性
您选择一个或多个分支后,所选分支上的所有提交都会通过 HTTPS 连接传输到 Gerrit。您需要配置一个 HTTPS 密码以启用上传授权。要生成新的用户名/密码对以用于 HTTPS 传输,请访问密码生成器。
当 Gerrit 通过其服务器接收对象数据时,它会将每项提交转变成一项更改,以便审核者可以单独针对每项提交给出意见。要将几项“检查点”提交合并为一项提交,请使用 git rebase -i
,然后再运行 repo upload
。
如果您在未使用任何参数的情况下运行 repo upload
,则该操作会搜索所有项目中的更改以进行上传。
要在更改上传之后对其进行修改,您应该使用 git rebase -i
或 git commit --amend
等工具更新您的本地提交。修改完成之后,请执行以下操作:
- 进行核对以确保更新后的分支是当前已检出的分支。
- 对于相应系列中的每项提交,请在方括号内输入 Gerrit 更改 ID:
# Replacing from branch foo [ 3021 ] 35f2596c Refactor part of GetUploadableBranches to lookup one specific... [ 2829 ] ec18b4ba Update proto client to support patch set replacments # Insert change numbers in the brackets to add a new patch set. # To create a new change record, leave the brackets empty.
上传完成后,这些更改将拥有一个额外的补丁程序集。
repo upload
相当于 git push
,但是又有很大的不同。它将版本库改动推送到代码审核服务器(Gerrit软件架设)的特殊引用上。代码审核服务器会对推送的提交进行特殊处理,将新的提交显示为一个待审核的修改集,并进入代码审核流程,只有当审核通过后,才会合并到官方正式的版本库中。
常用选项:
-t
:发送本地分支名称到Gerrit代码审核服务器--re=REVIEWERS
:要求指定的人员进行审核--cc=CC
:同时发送通知到如下邮件地址
repo download
命令格式:
repo download {[project] change[/patchset]}...
从审核系统中下载指定更改,并放在您项目的本地工作目录中供使用。
例如,要将更改 23823 下载到您的平台/编译目录,请运行以下命令:
$ repo download platform/build 23823
repo sync
应该可以有效移除通过 repo download
检索到的任何提交。或者,您可以将远程分支检出,例如 git checkout m/master
。
repo download
命令主要用于代码审核者下载和评估贡献者提交的修订。
贡献者的修订在Git版本库中refs/changes//引用方式
命名(缺省的patchset为1),和其他Git引用一样,用git fetch
获取,该引用所指向的最新的提交就是贡献者待审核的修订。
使用repo download
命令实际上就是用git fetch
获取到对应项目的refs/changes//patchset>
引用,并自动切换到对应的引用上。
repo grep
命令格式:
repo grep {pattern | -e pattern} [<project>...]
打印出符合某个模式的行。相当于对 git grep
的封装,用于在项目文件中进行内容查找。
repo manifest
命令格式:
repo manifest [-o {-|NAME.xml}] [-m MANIFEST.xml] [-r]
manifest检验工具,用于显示当前使用的manifest文件内容。
常用选项:
-r, --revision-as-HEAD
:把某版次存为当前的HEAD-o -|NAME.xml, --output-file=-|NAME.xml
:把manifest存为NAME.xml
示例:
# 获取仓库的sha1值,并记录在一个新的release.xml文件中
repo manifest -o release.xml -r
repo 工作流程
常用的 repo 工作流程如下:
repo sync后 git branch -a 显示中 “no branch” 和 “remotes/m/master” 的含义
使用repo工具同步代码之后,进入任意项目路径下,执行 git branch -a
输出如下:
$ git branch -a
* (no branch)remotes/m/master -> origin/devremotes/origin/devremotes/origin/master
-
输出中的后两行比较好理解,就是该仓库的远程仓库里存在的分支。
-
输出的第一行
* (no branch)
中的*
表示当前所在的分支,该行意思是,当前不再任何分支上。为什么会显示
no branch
呢?
repo sync
只是根据清单文件中revision
版本进行更新的,没有固定的branch,repo sync
成功之后,不能直接进行操作,需要先执行repo start
建立新的分支进行开发。其实,执行
repo branches
命令也会显示no branches
的,这个就更好理解了,不同的子仓库的revision
不尽相同,所有git仓库放在一起,更是没有一个确切的branch了。 -
输出的第二行中
remotes/m/master -> origin/dev
又是什么意思呢?- 前一部分表示 repo 清单库(manifest仓库)的分支,即执行
repo init
命令时-b
选项的参数,如果执行repo init
命令时没有指定-b
选项,则表示默认采用清单库的master
分支。 - 箭头所指的后一部分
origin/dev
,表示当前所使用的清单文件(.xml文件)里面指定的单个git库的revision值(即,清单文件中project
元素的revision
属性,如果project
元素没有指定revision
属性,则默认使用的是default
元素的revision
属性)。
这样做的目的是:为了让用户方便的知道自己目前工作在清单库的哪个分支上。当前的清单库的这个分支又引用了当前git库的哪个branch/tag上
- 前一部分表示 repo 清单库(manifest仓库)的分支,即执行
参考文章:
- repo工具介绍
- 一篇通俗易懂的repo教程
- Google Git-Repo 多仓库项目管理
- Git多项目管理
- 多仓库管理工具——Repo
- 怎么针对自己项目工程建立Repo管理多个git仓库?
- Repo 命令参考资料
- Repo
- repo sync同步下来之后,git branch 显示“no branches”
- refs/remotes/m分支的含义
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Python的for遍历
基本用法 # coding:utf-8if __name__ __main__:例1:for 参数1 in 可以遍历list,tuple,set中的元素,遍历dict的key(可以通过dict[key]获取value)例2:for 参数1,参数2..... in 可以直接遍历 list(tuple1,tuple2......) 这种数据的tuple层内元素。但是for的取值参数个数只能是tu…...
2024/3/7 12:12:02 - 博睿数据携手新浪财经发布《2021年信用卡行业发展报告》
2月11日,由新浪财经出品的《2021年信用卡行业发展报告》(以下简称《报告》)正式发布,从信用卡行业发展、信用卡App发展等方面,全面盘点和分析2021年信用卡行业发展情况。博睿数据作为独家战略合作伙伴支持。 《报告》…...
2024/3/7 12:12:01 - flex结合order实现从左到右的瀑布流
flex结合order实现从左到右的瀑布流 这种方式可以做到先从左到右,再从上到下显示 缺点:需要预先设定flex容器的高度,且调整页面大小时会出现一些间距过大的问题 应对:列表改变时,动态计算flex所需高度 缺陷࿱…...
2024/3/7 12:11:59 - CMA检测报告中,CNAS,CMA分别代表的意义
CMA检测报告中,CNAS,CMA分别代表的意义 质检报告用途,质检报告费用,质检报告周期,质检报告结果,质检报告要求 第三方质检报告,检验报告,检测报告,CNAS质检报告ÿ…...
2024/3/7 12:11:58 - Jmeter写入测试结果到excel文件中---jxl.jar
一、如何利用Jmter操作excel的思路分析 Excel中一般有三个要素:workbook、sheet、cell,要想把结果存储到指定的单元格,那就必须依照这三个元素来定位。 先获取excel的文件名称 获取表单名 获取单元格的坐标 获取结果,写入到对应的…...
2024/3/7 12:11:57 - 记录一次前端调试console.log的bug
背景:在测试一个vue项目时,想着用console.log打印一下接口返回值,结果在Chrom浏览器F12控制台中并没有显示,一开始还以为是方法写错位置等代码问题,直到我在控制台直接输入console.log(1)都不会打印时才意识到是浏览器…...
2024/3/7 12:11:56 - Vue面试题 - 谈谈你的Vue生命周期的理解
在Vue中,每一个Vue实例都有一套属于自己的生命周期钩子函数,在这些钩子函数内,我们可以指定Vue实例在什么阶段干什么事情,简单的来说,通常发送请求在created 或者 mounted 声明周期构造函数内,主要还是要看…...
2024/3/13 3:41:56 - Web自动化测试04:Selenium-API操作之元素定位
系列文章目录 🐟软件测试功能到自动化学习路线图,2022年最新版技术栈 🍑软件测试01:从了解测试岗位职能和测试流程开始,附作业 🍑软件测试02:6大实际案例手把手教你设计测试点 🍑软…...
2024/3/7 12:11:54 - Vue3引入axios踩坑
首先是本机版本 遇到的问题 学习来源:楠哥教你学Java 根据视频添加axios vue add axios 结果发现 控制台报warning 和 页面全部空白 解决办法 在main.js中修改 原本: import ./plugins/axios import { createApp } from vue import App from ./App.vue…...
2024/3/29 17:04:51 - GBase 8a组网配置建议
增加级联绑定 由于本项目采用大规模集群数据库系统软件,各节点间的数据通信频繁,因此建立在内部组网时,万兆交换机之间采用级联的方式,以提升网络吞吐量,从而提高更大的端口密度和更高的性能。交换机进行级联时&#x…...
2024/3/29 17:04:50 - golang.org下载失败问题处理
因google被墙,无特殊上网方法的话所有golang.org包均无法下载 可直接在github中找到对应的源码包,搜索地址:github.com/orgs/golang/repositories 例如 github.com/golang/tour 与 golang.org/x/tour是一致的 cd $GOPATH/src mkdir -p gol…...
2024/3/29 17:04:50 - Unity TimeLine 自定义Track
如果有对TimeLine不熟悉的同学,可以先看一下这个视频 https://www.bilibili.com/video/BV13T4y1A7Se?fromsearch&seid10488791428047585833&spm_id_from333.337.0.0 在本方法中实现自定义track需要实现以下3个文件,以粒子特效为例子做演示 u…...
2024/3/29 17:04:48 - 让机器人教育成为创新科技的主流
在人工智能开始普及的今天,创新教育,包括机器人教育将重新被定义,人工智能的开发工具和教学工具将令教育者和受教育者站在更高的起点上。格物斯坦表示:近十年,人工智能算法从实验室走向了科技大公司,尤其是…...
2024/3/29 4:09:05 - 抑菌圈扫描校正模板
简 介: 利用标准的模板来校正抑菌圈测量比例,可以吧生产以及使用过程中抑菌圈托盘的上下移动对于测量结果的影响降至最小。这方面的测量可以参见 利用圆圈轮廓面积求取圆环半径:cv2.findContours, contourArea 对于垂直移动所带来的测量结果的…...
2024/3/4 10:46:28 - 移动和数据中心的 DDoS 激增
此外,超过 70% 的运营数据中心在去年报告了 DDoS 攻击,比前一年大幅增加。 根据 Arbor Networks 的第 9 次年度全球基础设施安全报告(WISR),超过三分之一的响应数据中心遭受的攻击超过了可用的互联网连接总量,几乎是前一年的两倍…...
2024/3/4 10:46:27 - PMP考试容易通过吗?
随着世界经济与时代的发展,PMP也在不断调整考纲和自身定位以顺应项目管理发展趋势,始终确保其项目管理领头地位。2021年PMP认证大纲的变化给想要考PMP的学员造成了恐慌,许多学员过来私信科科过小编:“大纲改版后,PMP考…...
2024/3/7 12:11:50 - unity笔记_四舍六入五成双
float Round(float num, int length)//0.58{string str num.ToString();//传入整数,没有小数点if (!str.Contains(".")){return num;}else //有小数点{float _num Mathf.Abs(num);float temp _num * Mathf.Pow(10, length 1);float rem temp % 10f; …...
2024/3/22 11:52:20 - Centos使用yum安装时AppStream报错
Centos使用yum安装时AppStream报错 想要安装gbd时运行如下语句 # yum install gdb wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/centos8_base.repo cd /etc/yum.repos.d vim CentOS-Base.repo 但后来运行发现问题是在 CentOS-Linux-A…...
2024/3/7 12:11:48 - linux 性能监控 sar命令
参考文章: https://blog.csdn.net/liyongbing1122/article/details/89517282...
2024/3/7 12:11:48 - No.2.4_6 MySQL存储emoji表情
相关链接 CSDN_GroupiesM 笔记整理 mysql版本: 5.7.32-log ,测试结果可能受mysql版本、navicat版本、电脑系统各种因素影响 需要设置表字符集、字段字符集为 utf8mb4_unicode_ci,这个字符集下才支持emoji表情 SET NAMES utf8mb4; SET FOREI…...
2024/3/7 12:11:46
最新文章
- 使用Kaggle API快速下载Kaggle数据集
前言 在使用Kaggle网站下载数据集时,直接在网页上点击下载可能会很慢,甚至会出现下载失败的情况。本文将介绍如何使用Kaggle API快速下载数据集。 具体步骤 安装Kaggle API包 在终端中输入以下命令来安装Kaggle API相关的包: pip install…...
2024/3/29 18:16:12 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - (三)Ribbon负载均衡
1.1.负载均衡原理 SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。 1.2.源码跟踪 为什么我们只输入了service名称就可以访问了呢?之前还要获取ip和端口。 显然有人帮我们根据service名称,获取到了服务实例的ip和…...
2024/3/29 12:22:00 - 计算机软件安全
一、软件安全涉及的范围 1.1软件本身的安全保密 软件的本质与特征: 可移植性 寄生性 再生性 可激发性 攻击性 破坏性 …… 知识产权与软件盗版 软件商品交易形式不透明,方式多样,传统商标标识方法不适用; 盗版方法简捷…...
2024/3/29 9:02:46 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/3/29 18:08:39 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/3/29 18:08:34 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/3/29 2:45:46 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/3/29 16:26:39 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/3/29 5:19:52 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/3/29 18:08:00 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/3/29 11:11:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/3/29 1:13:26 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/3/29 8:28:16 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/3/29 7:41:19 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/3/29 18:07:15 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/3/29 9:57:23 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/3/29 0:49:46 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/3/29 18:06:57 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/3/29 17:27:19 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/3/29 18:06:36 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/3/29 18:06:22 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/3/28 18:26:34 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/3/29 18:06:01 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/3/28 20:09:10 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57