当前位置: 首页 > news >正文

GitKraken 详细图文教程

前言

写这篇文章的原因是组内的产品和美术同学,开始参与到git工作流中,但是网上又没有找到一个比较详细的使用教程,所以干脆就自己写了一个[doge]。文章的内容比较基础,介绍了Git内的一些基础概念和基本操作,适合零基础的人作为入门指南。

Git常见的一些概念

1.仓库(repository/repo):代码和资源的仓库,Git分为本地仓库和远程仓库,Git在启动和主动拉取的时候会将远程仓库的内容同步到本地。远程仓库是托管在服务器上,仅会有一份,并且时刻保持最新。本地仓库则是可以有多份,每个人的本地仓库是互不影响的,而且可以断网进行修改。

2.克隆(Clone):当远程仓库已经建好,并且没有本地仓库的时候。需要将远程仓库Clone到本地,刚完成克隆的时候,本地仓库与远程是完全相同的。

3.分支(Branch):一个仓库里在初始化提交的时候会生成一个初始的主分支。之后可以在这个主分支上创建其他新的分支。 当你需要做一些操作并且不想影响到其他人时,可以单独创建一个分支,在分支上开发完功能,最后再合并(Merge)到主干上。

分支同样存在本地和远程的区别,远程分支记录的是远程仓库该分支的内容。本地分支则是保存了你本地仓库修改的内容。如果存在远程分支,但是没有对应的本地分支的情况,可以检出(Checkout)获得一个本地分支。

在GitKraken左侧可以看到所有的本地(Local)和远程(Remote)的分支。同时在中间的主面板也可以看到远程和本地分支的情况,远程的分支显示为一个圆形的图标,本地则为一个小电脑的图标

GitKraken界面介绍

主界面

GitKraken的主界面如下,顶部显示为当前的工程。中间为图形化的Git提交记录,可以看到当前项目的提交情况,左侧为本地/远程分支和贮藏等区域。右侧则为文件修改区

Git文件修改区

文件修改区,当有文件产生变化的时候,会出现如下的提示

点击View change会切换到如下界面,处理当前的修改

右侧的文件修改区可以看到几种不同的文件状态

黄色为该文件进行过修改(本地与远程不同)

红色为该文件已经被删除(远程存在,本地不存在)

绿色为该文件为新增文件  (本地存在,远程不存在)

这里需要注意一点如果本地没有任何修改的时候,修改区是不会显示的

左键点击右侧修改区的文件时,进入修改预览界面。可以看到具体文件修改情况。侧边栏有文件修改情况的缩略图,可以拖动后找到对应的修改位置。左侧则是实际的修改情况。查看完毕后可以选择暂存该文件或者关闭预览

GitKranken基础操作

丢弃修改(Discard

如果不想要本地的修改了,可以选择将本地修改丢弃,具体操作如下

(1)丢弃单个修改

在修改区内,如果想要某个修改,可以右键点击该文件,选择Discard changeds

之后顶部会出现一个确认弹窗,点击Discard Unstaged changeds按钮,即可还原到修改前的状态

修改和删除的文件都可以进行Discard操作。如果是新增的文件,想要还原,需要右键点击Delete file。

(2)丢弃文件夹内修改

想要丢弃某个文件内的所有修改,需要先将修改区切换成Tree模式,这样修改区的文件就会以树状结构出现

然后右键选择需要丢弃的文件夹,点击Discard all changes in folder

然后点击顶部弹窗的Reset Files

(3)丢弃所有修改

如果想要忽略所有修改,则可以点击左上角的垃圾桶

之后顶部会出现一个弹窗,点击Reset All即可清空整个修改区

贮藏(Stash

点击顶部的Stash会将当前修改区内所有的修改贮藏起来。

对应的修改会放在下图中的一个小抽屉里。并且会自动按照分支对该Stash进行命名。在develop上贮藏的message就会自动命名为WIP on develop

如果想要修改Stash的名字,可以点击这个小抽屉,点击右侧Stash Message框,修改这个Message

后续如果想要恢复这个Stash内的修改,可以右键点击小抽屉所在的那一行记录,然后选择Pop Stash即可

提交修改(Commit

Git可以完成离线的开发工作,所有的提交内容可以先提交(Commit)到本地的分支中,此时并不影响远程分支。

具体操作是鼠标移动到修改的文件处,点击右侧的StageFile,即可暂存(Stage)该文件

可以看到文件移动到了下方的Staged Files区域

如果想要暂存所有文件可以点击右上角的Stage all changes

按文件夹暂存则是右键文件夹,然后选择Stage folder

所有需要暂存的文件都放入暂存区后,在Commit Message填写修改日志,点击Commit changes就可以将修改提交到本地仓库

提交修改之后,可以看到主界面会有一条对应日志的提交记录。

拉取(Pull)

当有其他人提交一些更改到远程分支时,需要通过Pull操作将其他人的修改同步到本地。Pull的操作十分简单,只需要点击顶部的Pull按钮即可

在进行Pull之前,有两类本地分支的状态:

第一类最简单,本地和远程都处在同一条线上。代表本地未commit任何文件,但是其他人Push了一些修改到远程分支

此时进行Pull操作之后,远程和本地分支的标识都在同一个地方,说明Pull成功,本地和远程的分支完全一致。

第二类情况是,本地进行修改并且Commit之后,没有推送到远端。

此时本地和远程两条分支在两条线上并且本地和远程分支没有汇合到一起。当远程分支的修改时间在本地Commit之后,远程分支显示在本地分支上方

反之远程分支显示在本地分支下方

直接点击Pull即可进行拉取。Pull完成后,可以看到虽然远程代码和本地依然是在两条线上,但是远程分支汇聚到了本地分支上,代表Pull成功。

推送(Push)

当需要将本地分支的修改推送到远程分支时,就需要进行推送(Push)操作,需要注意的时,在Push之前需要先进行Pull操作,将远程分支的内容同步到本地才可以进行Push。

Push操作也十分简单,点击顶部的Push即可

Push成功之后,可以看到小圆点和小电脑此时处在同一行。说明Push 成功,本地和远程的分支完全一致。

创建分支(Create Branch

右键希望创建分支的位置,选择Create branch here

之后在左侧会出现一个enter branch name的弹窗,输入分支名后,点击Enter即可创建分支

这里输入的分支名为testBranch,可以看到创建后会有一个小电脑的图标,代表本地分支

检出分支(Checkout

当想要从一个分支切换到另外一个分支的时候,可以通过Checkout进行切换,具体操作是右键点击需要切换的分支,选择"Checkout 分支名称"。(该操作也可以化简为直接双击分支)

当切换到该分支时,可以看到分支左侧有一个打钩的图标.

Checkout可以选择切换到本地分支,或者远程分支。如果不存在本地分支,可以直接双击远程分支的所在的圆点。

会自动生成一个本地分支。

如果已经存在本地分支,并且本地分支和远程和分支不在相同的位置,选择Checkout远程分支,会出现以下提示。如果选择Reset Local Here,相当于将本地分支全部重置,并且同步到远程分支所在的位置。(特别注意,该操作会将本地未PushCommit全部丢弃,不要轻易执行该操作)如果不希望重置本地分支,可以选择Cancel取消。大多数情况下,如果存在本地分支,都是先Checkout本地分支,然后Pull更新到最新。

合并分支(Merge

不同的分支之间可以进行Merge操作,比如你在自己分支上进行了一些修改之后,希望将修改同步到主干上时,可以进行Merge操作。同时也可以把主干的修改同步到自己的分支上。

具体的操作是,先切换到目标分支,然后右键点击需要合并的源分支,选择"Merge 源分支 into 目标分支"。这样就可以把来源分支的内容合并的目标分支上。

Merge成功后会自动产生一条合并的日志。并且源分支所代表的那根线也汇聚到目标分支上了

采用提交(Cherry Pick Commit)

有时候你在某个分支上做了多个修改,比如“添加图片”(A),"修改图片参数"(B),“修改代码”(C)。这时候,你想要在另外一个目标分支上应用A修改,但是又不想其他修改也合并到目标分支,这时候就可以通过Cherry pick commit实现该操作。

具体步骤是,右键点击需要采用的提交,然后选择Cherry pick commit

操作完成之后可以看到目标分支上出现了一条跟采用提交相同的日志

恢复提交(Revert Commit)

如果一个已经提交的修改,希望将它恢复到提交之前的状态,就可以使用Revert Commit操作。只需要右键点击需要恢复的提交,选择Revert commit即可

操作完成之后会自动生成一个Revert日志

处理冲突(Resolve Conflict)

处理冲突是git工作流中最为麻烦的。一般原因是两个分支同时对一个文件进行了修改。下面举一个简单的例子,来模拟这样一个情况。分支BranchA和分支BranchB都有个文件TestScript.cs,里面的内容就是声明了一个变量a,一开始a的值是0。

XML
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TestScript : MonoBehaviour
{
    int a = 0;
}

然后在BranchA把a的值改成100,在BranchB的值改成50。然后尝试将BranchB Merge到BranchA上。

可以看到左下角会弹出一个Merge Failed的提示

并且顶部同样会有一个黄色的提示,文件修改区的Conflicted Files会显示哪个文件出现冲突。

点击冲突区的文件,会进入处理冲突的界面。可以看到冲突界面有三块区域

左上角为BranchA的内容

右上角为BranchB的内容

底部为输出区域的内容

这时候如果想要采用BranchA的提交可以点击出现冲突那一行左侧的勾选框

可以看到下方的输出区域的内容也跟着变成跟BranchA相同的修改

这时候冲突便解决完毕了。可以点击右上角的Save按钮,退出处理冲突界面。

此时可以看到TestScript.cs从冲突区,移动到了下方的暂存区。并且自动填入了Commit Message。如果确定采用这次的冲突处理,可以点击左侧的Commit and Merge就完成了整个合并冲突的流程

主界面上也会出现这条Merge成功的Commit信息

实际在操作的过程中会发生单个文件会有多个冲突出现的情况。可以看到输出区域Output,会显示conflict n of m。n代表当前查看的是第n个冲突,m代表一共有几个冲突。可以点击右侧的箭头在不同的冲突之间切换。

有时候会出现单个文件的冲突特别多的情况。或者由于修改prefab或者场景导致不知道如何去一条一条地处理冲突。这时候可以直接点击顶部两个勾选框,选择直接采用哪个分支的文件。比如点击左侧A的勾选框,代表直接采用BranchA上的文件,完全忽略BranchB上的修改。后续可以等待冲突处理完之后再手动将BranchB上的修改添加回来。

在处理冲突直接采用哪个文件时,建议大家按照以下的原则进行选择

(1)、优先采用其他人修改的文件

(2)、优先采用远程分支的文件

(3)、优先采用修改较多的文件

在处理冲突的时候还有一种简单粗暴的处理方式,就是在Conflicted Files选择Mark all resolved

这样GitKranken会把所有冲突标记为已经解决。但是实际上文件的内容并不是正确的,比如前面那个修改a值的例子,选择Mark all resolved的输出内容是下图这个样子。同时把两个分支的内容都填进去了,并且还有

Git自动输出的提示“<<< Head  ===  >>> branchA”,最后还是需要手动地去解决。

GitKranken操作流程

1.清空修改区

在进行Pull或者切换分支的操作之前,需要先清空修改区。

清空有几种方式:

(1)丢弃修改(Discard)

(2)贮藏(Stash)

(3)提交修改(Commit)

具体操作可以查看上一个章节中对应基本操作

2.确定分支

清空完修改区后,需要确定是在哪个分支上进行操作。之后需要切换到对应分支。可以先查看本地是否有该分支。(左侧Local栏),如果存在。直接双击该分支即可切换到该分支上。如果该分支本地仓库不存在,可以直接双击远程分支,这样就可以在本地Checkout了一个对应的分支,并完成切换。

3.同步远程分支

切换到对应分支后需要进行Pull的操作,将远程仓库的修改同步到本地。点击Pull按钮,可以完成Pull操作

4.本地进行修改

在进行本地修改的时候,可以自由地创建本地分支,贮藏,或者提交到本地。

点击完贮藏按钮后可以看到顶部出现一个小抽屉的图标,本地所有的修改都临时保存在这个贮藏中

之后再次拉取最新的分支,验证最终效果。

如果发现仍有需要修改的情况,可以直接在最新的分支上修改。也可以根据情况恢复贮藏的内容,右键刚刚贮藏的小抽屉,选择Pop Stash,恢复修改。

常见问题处理

1.文件被其他程序使用

在进行文件操作的时候,(比如Stash,Discard等)可能会出现如下弹窗,导致无法进行操作。原因是,有文件被其他程序使用了,比如播放器,图片浏览器等。这时候,需要把占用该文件的程序关闭,即可顺利进行操作。(如果实在找不到是哪个程序,可以重启电脑)

2.切换分支失败Checkout Failed

在进行分支切换的时候,有时会因为修改区未清空出现如下报错。清空修改区后再切换分支即可。

创作不易,如果觉得这篇文章对你有所帮助,可以动动小手,点个赞哈,ღ( ´・ᴗ・` )比心

相关文章:

GitKraken 详细图文教程

前言 写这篇文章的原因是组内的产品和美术同学&#xff0c;开始参与到git工作流中&#xff0c;但是网上又没有找到一个比较详细的使用教程&#xff0c;所以干脆就自己写了一个[doge]。文章的内容比较基础&#xff0c;介绍了Git内的一些基础概念和基本操作&#xff0c;适合零基…...

ubuntu20.04 root用户下使用中文输入法——root用户pycharm无法用中文输入法问题

因为一些众所不周知的bug&#xff0c;我的pycharm使用apt或者snap安装都不行了&#xff0c;官网下了“绿色版”&#xff0c;运行pycharm.sh也运行不起来&#xff0c;有个java相关环境报错&#xff0c;jre和jdk都装了&#xff0c;还是有点问题&#xff0c;最后尝试发现可以用roo…...

FastDFS与Nginx结合搭建文件服务器,并实现公网访问【内网穿透】

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…...

嵌入式蓝海变红海?其实是大浪淘沙!

嵌入式是当下热门的职业方向之一&#xff0c;吸引了众多求职者的目光。然而&#xff0c;有人担心大家一拥而上&#xff0c;导致嵌入式就业竞争激烈&#xff0c;找工作难度大。其实&#xff0c;嵌入式行业的竞争并非无法逾越的天堑&#xff0c;也远远没有从蓝海变成红海&#xf…...

【附安装包】Solid Edge2023安装教程最强CAD选择

软件下载 软件&#xff1a;Solid Edge版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;3.85G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU2.0GHz 内存4G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a;https://pan.bai…...

494. 目标和

494. 目标和 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;数组回溯法动态规划 参考代码&#xff1a;数组回溯法__494目标和__动态规划 经验吸取 原题链接&#xff1a; 494. 目标和 https://leetcode.cn/problems/target-sum/description/ 完成情况&#…...

C++学习笔记总结练习:C++编译过程详解

编译和链接的过程 0 概述 程序要运行起来&#xff0c;必须要经过四个步骤&#xff1a;预处理、编译、汇编和链接。接下来通过几个简单的例子来详细讲解一下这些过程。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EFwSfKYp-1692237034055)(imag…...

嵌入式设备应用开发(qt界面开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 linux界面开发有很多的方案可以选。比如说lvgl、minigui、ftk之类的。但是,这么多年来,一直屹立不倒的还是qt。相比较其他几种方案,qt支持多个平台,这里面就包括了linux平台。此…...

pytest结合Excel实现接口自动化

前言 我们先来回顾下之前篇章“pytest通过parametrize方法实现数据驱动实战”&#xff0c;主要是通过yaml文件来读取测试用例。而我们用Excel文件存放测试用例又有什么区别呢&#xff1f; 毫无疑问&#xff0c;Pytest自动化测试框架也能读取Excel文件实现数据驱动。 还记得之…...

【LLM数据篇】预训练数据集+指令生成sft数据集

note 在《Aligning Large Language Models with Human: A Survey》综述中对LLM数据分类为典型的人工标注数据、self-instruct数据集等优秀的开源sft数据集&#xff1a;alpaca_data、belle、千言数据集、firefly、moss-003-sft-data多轮对话数据集等 文章目录 note构造指令实例…...

WebDAV之π-Disk派盘 + 一羽记帐

一羽记帐是一款真正让你体验3S极速记账的轻量级APP。针对个人记账,没有花哨冗余的功能。界面美丽、无广告、极速启动、功能全面。一羽记帐功能涵括广,基本可以满足90%人的记账需求。完全无侵入、百分百无广告,无需担心数据安全,所有的操作都不经过任何第三方。 π-Disk派盘…...

ChatGPT:记一次超复杂的KVM桌面系统连接问答记录

​ KVM切换器可以使多台电脑共用键盘&#xff0c;显示器&#xff0c;鼠标&#xff0c;当电脑很多&#xff0c;显示器也是分为主从&#xff0c;需要共用键盘鼠标和音响设备&#xff0c;而买KVM切换器只有2个通道4进2出不满足需求时&#xff0c;就要组合多个KVM使用&#xff0c;大…...

python-docx把dataframe表格添加到word文件中

python-docx把dataframe表格添加到word文件中思路较为简单&#xff1a; 先把dataframe格式转变为table新建一个段落&#xff1a;document.add_paragraph()把table添加到这个段落下方 效果图 示例代码 from docx import Document, oxml import pandas as pd import numpy as …...

Web AP—BOM 浏览器对象模型

代码下载 BOM BOM&#xff08;Browser Object Model&#xff09;即浏览器对象模型&#xff0c;它提供了独立于内容而与浏览器窗口进行交互的对象&#xff0c;其核心对象是 window。 BOM 由一系列相关的对象构成&#xff0c;并且每个对象都提供了很多方法与属性。 BOM 缺乏标…...

Flink分流,合流,状态,checkpoint和精准一次笔记

第8章 分流 1.使用侧输出流 2.合流 2.1 union &#xff1a;使用 ProcessFunction 处理合流后的数据 2.2 Connect &#xff1a; 两条流的格式可以不一样&#xff0c; map操作使用CoMapFunction&#xff0c;process 传入&#xff1a;CoProcessFunction 2.2 BroadcastConnectedSt…...

c# 实现sql查询DataTable数据集 对接SqlSugar ORM

有时候对于已经查询到的数据集&#xff0c;想要进行二次筛选或者查询&#xff0c;还得再查一遍数据库 或者其他的一些逻辑处理不太方便&#xff0c;就想着为什么不能直接使用sql来查询DataTable呢&#xff1f; 搜索全网没找到可用方案&#xff0c;所以自己实现了一个。 主要…...

记一次布尔盲注漏洞的挖掘与分析

在上篇文章记一次由于整型参数错误导致的任意文件上传的漏洞成因的分析过程中&#xff0c;发现menu_id貌似是存在注入的。 public function upload() {$menu_id $this->post(menu_id);if ($id) {$where "id {$id}";if ($menu_id) {$where . " and menu_id…...

C++11 新特性 ---- noexcept

1. 异常 异常通常用于处理逻辑上可能发生的错误 在C98中&#xff0c;提供了一套完善的异常处理机制&#xff0c;直接在程序中将各种类型的异常抛出&#xff0c;从而强制终止程序的运行。 1.1 基本语法 当函数抛出异常时&#xff0c;程序会停止执行&#xff0c;并显示异常信息…...

《Linux运维总结:Centos7.6之OpenSSH7.4p1升级版本至9.4p1》

Centos通过yum升级OpenSSH 在官方支持更新的CentOS版本&#xff0c;如果出现漏洞&#xff0c;都会通过更新版本来修复漏洞。这时候直接使用yum update就可以升级版本。 yum -y update openssh 但是&#xff0c;CentOS更新需要有一段时间&#xff0c;不能在漏洞刚出来的时候就有…...

七夕节日表白:七大网页风格与其适用人群

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

通达信指标公式16:使用BARSLAST函数写一个指标回测的思路

★★★★★博文原创不易&#xff0c;我的博文不需要打赏&#xff0c;也不需要知识付费&#xff0c;可以白嫖学习小技巧&#xff0c;喜欢的老铁可以多多帮忙点赞&#xff0c;小红牛在此表示感谢&#xff0c;就是对作者的最大支持。愿与诸君共勉&#xff0c;悟道于股市★★★★★…...

Jenkins自动化部署Vue项目

1、新建item&#xff0c;选择 Freestyle project 2、源码管理选择git&#xff0c;输入git仓库地址和授权账号&#xff0c;并指明要部署的分支 3、构建选择 Execute shell&#xff0c;输入vue项目打包命令 命令示例&#xff1a; source /etc/profile node -v npm config set re…...

Android JNI打印logcat日志

在 JNI 中打印日志可以使用 __android_log_print 函数来实现。该函数是 Android NDK 提供的一个用于在本地代码中输出日志消息到 logcat 的方法。 要在 JNI 中打印日志&#xff0c;请按照以下步骤进行操作&#xff1a; 在你的 JNI C/C 代码中包含 <android/log.h> 头文件…...

第28次CCF计算机软件能力认证(测试)

测试300分要是考试的时候也能这么发挥就好 第一题&#xff1a;现值计算 解题思路&#xff1a;直接模拟 n , m input().split() n int(n);m float(m) l list(map(int , input().split())) res 0 for i in range(0 , n 1):res pow(1 m , -i) * l[i] print(res) 第二题…...

九耶丨阁瑞钛伦特-Java高频面试题-请谈谈 ReadWriteLock 和 StampedLock

ReadWriteLock包括两种子锁 &#xff08;1&#xff09;ReadWriteLock ReadWriteLock 可以实现多个读锁同时进行&#xff0c;但是读与写和写于写互斥&#xff0c;只能有一个写锁线程在进行。 &#xff08;2&#xff09;StampedLock StampedLock是Jdk在1.8提供的一种读写锁&a…...

【Linux操作系统】深入探索Linux系统编程中的信号集操作函数

在Linux系统编程中&#xff0c;信号集操作函数是非常重要的工具&#xff0c;它们允许我们对信号进行管理和控制。本篇博客将详细介绍Linux系统编程中的信号集操作函数&#xff0c;包括信号集的创建、添加和删除信号&#xff0c;以及对信号集进行操作的常用函数。通过深入了解这…...

[C初阶笔记]P2

Git 1、Git是Linus为了帮助管理Linux内核开发 而开发的一个开放源码的分布式版本控制软件。 2、Git和TortoiseGit的作用。 Git中有各种命令行操作&#xff0c;来维护代码&#xff0c;可以将代码推送到代码托管平台。 TortoiseGit是将Git中各自命令行操作转化为图形化操作。 …...

C++并发编程学习01——hello concurrent world

经典用例 #include <iostream> #include <thread>void hello() {std::cout << "hello concurrent world" << std::endl; }int main() {std::thread t(hello);t.join(); }编译 g -g test.cpp -o out -lpthreadgdb调试 (gdb) r Starting pr…...

大数据扫盲(2): 数据分析BI与ETL的紧密关系——ETL是成功BI的先决条件

着业务的发展每个企业都将产生越来越多的数据&#xff0c;然后这些数据本身并不能直接带来洞察力并产生业务价值。为了释放数据的潜力&#xff0c;数据分析BI&#xff08;商业智能&#xff09;成为了现代企业不可或缺的一部分。然而&#xff0c;在数据分析的背后&#xff0c;有…...

Java web 中的 jsp

JSP是什么 JSP是动态网页编程技术 JSP的四大作用域 1.page 表示在当前页面有效 2.request 表现在一次请求中有效 3.session 表示在一次会话中有效 4.application 表示在整个应用程序中有效 jsp内置对象是什么 在jsp开发中会频繁使用到一些对象,如果每次我们在jsp页面中需要…...

uniapp 数组操作

字符串转数组 let string "12345,56789" string.split(,) // [12345,56789] 数组转字符串 let array ["123","456"] array.join(",") // "123,456" 数组元素删除 let array [123,456] // 删除起始下标为1&#xff0…...

数据结构算法--4堆排序

堆排序过程: >建立堆(大根堆) >得到堆顶元素&#xff0c;为最大元素 >去掉堆顶&#xff0c;将堆最后一个元素放到堆顶&#xff0c;此时可通过一次调整使堆重新有序 >堆顶元素为第二大元素 >重复步骤3&#xff0c;直到堆变空 此时是建立堆后的大根堆模型 将…...

C++学习系列之DLL动态库使用

C学习系列之DLL动态库使用 啰嗦动态库的创建动态库的调用函数生成1.需要头文件函数定义&#xff08;头文件&#xff09;2.需要函数定义&#xff08;函数文件&#xff09;3.动态库中的头文件4.动态库中的主文件5.运行查看是否存在C#的调用的入口点6.C#调用 总结 啰嗦 项目需要&…...

Java实现钉钉企业内部应用机器和自定义机器人发送消息

前言 公司让写一个服务监控的功能,当监测到服务停止时,向钉钉群里推送报警信息。之前大概看到钉钉的开放平台的API文档,好像能群发消息的只有机器人。 钉钉开放平台目前提供三种机器人: 企业内部应用机器人 群模板机器人 自定义机器人 本来向用自己比较熟悉的自定义机器人…...

基于QT4的GPX文件编辑器开发

GPX文件是记录地理点的文件,本质是一种xml文件。GPX文件目前没有很好的编辑器,因此作者决定开发一款无需安装的绿色编辑器。 在QT4开发中,XML可以用DOM来实现,但其逻辑并不是很清晰。使用模型视图反而会更加可读。因此在开发中,使用model-view模式来实现数据读写。 1 需…...

树结构使用实例---实现数组和树结构的转换

文章目录 一、为什么要用树结构&#xff1f;二、使用步骤 1.引入相关json2.树结构的转换总结 一、为什么要用树结构&#xff1f; 本文将讲述一个实例&#xff0c;构造一棵树来实现数组和tree的转换&#xff0c;这在前端树结构中是经常遇到的 后端返回树结构方便管理&#xff…...

论文阅读_条件控制_ControlNet

name_en: Adding Conditional Control to Text-to-Image Diffusion Models name_ch: 向文本到图像的扩散模型添加条件控制 paper_addr: http://arxiv.org/abs/2302.05543 date_read: 2023-08-17 date_publish: 2023-02-10 tags: [‘图形图像’,‘大模型’,‘多模态’] author: …...

全链路数据湖开发治理解决方案2.0重磅升级,全面增强数据入湖、调度和治理能力

简介&#xff1a; 阿里云全链路数据湖开发治理解决方案能力持续升级&#xff0c;发布2.0版本。解决方案包含开源大数据平台E-MapReduce(EMR) &#xff0c; 一站式大数据数据开发治理平台DataWorks &#xff0c;数据湖构建DLF&#xff0c;对象存储OSS等核心产品。支持EMR新版数据…...

【算法题】2769. 找出最大的可达成数字

题目&#xff1a; 给你两个整数 num 和 t 。 如果整数 x 可以在执行下述操作不超过 t 次的情况下变为与 num 相等&#xff0c;则称其为 可达成数字 &#xff1a; 每次操作将 x 的值增加或减少 1 &#xff0c;同时可以选择将 num 的值增加或减少 1 。 返回所有可达成数字中的…...

023:vue中解决el-date-picker更改样式不生效问题

第023个 查看专栏目录: VUE ------ element UI 本文章目录 修改后的效果示例源代码&#xff08;共52行&#xff09;核心内容步骤&#xff1a;&#xff08;1&#xff09;更改样式&#xff08;2&#xff09;添加参数 专栏目标 在vue项目开发中&#xff0c;我们打算保持颜色的一致…...

爬虫借助代理会让网速快点吗?

亲爱的程序员朋友们&#xff0c;你曾经遇到过爬虫网速慢的情况吗&#xff1f;别着急&#xff01;今天我将和你一起探讨一下使用代理是否可以加速爬虫&#xff0c;让我们一起进入这个轻松又专业的知识分享。 一、原因和机制的解析 1.IP限制 某些网站为了保护资源和防止爬虫行…...

探索智能文字识别:技术、应用与发展前景

探索智能文字识别&#xff1a;技术、应用与发展前景 前言一张图全览大赛作品解读随心记你不对我对小结 智能文字识别体系化解读图像预处理文字定位和分割文字区域识别图像校正字体识别和匹配结果后处理小结 如何应对复杂场景下挑战复杂场景应对方法小结 人才时代对人才要求合合…...

STL——list用法

一、list介绍 1、list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2、list就是一个带头双向循环链表&#xff0c;list通常在任意位置进行插入、移除元素的执行效率更好。 3、list最大的缺陷是不支持任意位置的随机访问…...

Linux的基础指令

目录 1、ls指令 .和..意义 2、pwd指令 3、cd指令 ①cd ~ ②cd - 关于cd ..的用法 绝对路径和相对路径 4、touch指令 5、mkdir指令 tree指令 6、rmdir指令 7、rm指令 * 8、man指令 9、cp指令 nano&#xff1a; 10、mv指令 11、cat指令 12、more指令 13、less…...

深入浅出Pytorch函数——torch.nn.init.normal_

分类目录&#xff1a;《深入浅出Pytorch函数》总目录 相关文章&#xff1a; 深入浅出Pytorch函数——torch.nn.init.calculate_gain 深入浅出Pytorch函数——torch.nn.init.uniform_ 深入浅出Pytorch函数——torch.nn.init.normal_ 深入浅出Pytorch函数——torch.nn.init.c…...

Vue.js知识点学习的一点笔记

一、虚拟DOM 1、原生JS是命令式编程&#xff0c;当渲染在页面的数据发生一点点变化&#xff0c;需要整个重新渲染一编。vue.js渐进式框架有个虚拟DOM的概念&#xff0c;运用diff算法&#xff0c;比较新旧数据&#xff0c;相同的数据不变不重渲染&#xff0c;不同的部分新数据…...

Sui第四轮资助:16个团队瓜分

近日&#xff0c;Sui基金会公布了第四轮开发者资助名单&#xff0c;受助项目均是集中在DeFi、支付、基础设施、游戏、预言机等领域的Sui生态项目&#xff0c;他们是从2023年7月1日之前提交的申请中选出的。在此时间之后提交的任何项目目前正在审查中。 在前三轮资助中累积发放…...

ATC模型转换环境问题案例

ATC&#xff08;Ascend Tensor Compiler&#xff09;是异构计算架构CANN体系下的模型转换工具&#xff1a;它可以将开源框架的网络模型&#xff08;如TensorFlow等&#xff09;以及Ascend IR定义的单算子描述文件转换为昇腾AI处理器支持的离线模型&#xff1b;模型转换过程中&a…...

dart其他语法

dart其他语法 类型相关 空安全 不能将一个普通类型对象赋值为 null 避免 为空 报错&#xff1a;对 null 的使用语法进行限制&#xff08;str &#xff01; null&#xff09;对空安全的允诺 late 延迟初始化的时机 ! 在此时该可用变量一定不为空 void main() {String name zh…...

C++11并发与多线程笔记(7) 单例设计模式共享数据分析、解决,call_once

C11并发与多线程笔记&#xff08;7&#xff09; 单例设计模式共享数据分析、解决&#xff0c;call_once 1.设计模式2.单例设计模式&#xff1a;3.单例设计模式共享数据分析、解决4.std::call_once()&#xff1a; 1.设计模式 程序灵活&#xff0c;维护起来可能方便&#xff0c;…...