实用指南:Git分支管理:从创建到合并冲突解决(二)
git分支
master:默认的分支名称或是主分支(现在很多项目已改用 main),本质是一个存储最新提交commit ID的文件。
通过打印master中的内容,可以得到最新提交的commit ID。
在打印这个ID的信息 git cat-file -p 6dcef86b56b8a8934fc28605b67ef9892674a5ad
我们可以得到tree ID与上一次parent ID,而这个parent ID实际上就是上一次提交commit ID。
然后再打印这个commit ID,又会得到上上次的commit ID…… 以此类推。
我们最终得到一条时间线,这就是master的提交时间线。
通过命令git log --pretty=oneline
可以看到master中所有提交的commit ID 的历史记录(这里记录比较少,因为我提交次数少)。
master提交时间线
查看所有分支
git branch
这里只有master分支,master前有个星号,说明HEAD指向master,master是正在工作的分支。
HEAD可以指向其他分支,被指向的分支就是当前正在工作的分支。
创建分支
git branch 分支名称
例子:创建dev分支
通过tree .git
命令,我们可以看到所有的分支在路径 .git/refs/heads/ 下
创建的dev分支实际上存的是最新的commit ID,即master所存的commit ID。
切换分支
git checkout 分支名称
git checkout -b 新分支名称 # 新建并切换到新的分支
例子:切换到dev分支
使用git checkout dev
切换分支。cat .git/HEAD
打印一下HEAD指针。
此时HEAD确实指向了dev分支。
若哦我们再进行提交,master会进行更新,而master不会,原因是dev是当前的工作分支。
合并分支
git merge 分支名称
仍以上面为例:
使用git checkout master
先切换回master分支。
使用命令git merge dev #将dev分支合并到当前的master分支
进行合并分支。
这里默认使用的是快速合并模式,就是直接将master中存储dev中最新的commit ID。
选项:
–no-ff:全称是 “no fast-forward”(不使用快进模式),用于控制合并分支时的提交历史记录方式。
git merge --no-ff #分支名称 -m "合并描述"
默认情况下,当 Git 发现可以通过「快进合并」(fast-forward)完成分支合并时(即目标分支没有新提交,能直接指向源分支的最新提交),会直接移动分支指针,不产生新的合并提交。
而 --no-ff 选项强制 Git 无论是否能快进合并,都创建一个新的合并提交,明确记录这次分支合并的操作。
例子:
假设存在分支关系:master 分支落后于 dev分支(main 没有新提交):
A---B---C dev
/
D---E master
- 快速模式(默认模式)
git merge dev # 在master分支下进行
结果:master 指针直接移动到 C(注意:这里没有进行新的提交,仅仅只是master指针进行移动),无新提交,历史记录线性化:
D---E---A---B---C master, dev
- 使用 --no-ff 合并:
git merge --no-ff dev -m "合并描述" #强烈建议加上 -m “合并描述” 明确此次合并做了什么
结果:创建一个新的合并提交 M(注意:这里又进行了一次提交),明确记录合并操作,保留分支历史:
A---B---C dev
/ \
D---E-----------M main
优势:会在历史中清晰留下 “合并功能分支” 的标记。
删除分支
git branch -d 分支名称 # -d(delete)
git branch -D 分支名称 # 强行删除
注意事项
无法删除当前所在分支
必须先切换到其他分支(如 git checkout main),才能删除目标分支。否则会提示:
error: Cannot delete branch ‘feature/login’ checked out at ‘/path/to/your/project’仅删除本地分支,不影响远程分支
git branch -d 只操作本地仓库的分支。如果需要删除远程分支,需使用:
git push origin --delete 远程分支名称 # 例如 git push origin --delete feature/login
- 删除后的恢复方式
如果误删了包含未合并代码的分支,可通过 git reflog 找回分支的最后一次提交,再重新创建分支:
# 1. 查找被删除分支的最后一次提交记录(找到对应的 commit ID,如 a1b2c3d)
git reflog
# 2. 基于该提交重新创建分支,恢复代码
git branch feature/login a1b2c3d
注:因为创建,合并和删除分支非常快,所以git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。
合并冲突问题
syb@VM-8-5-ubuntu:~/gitcode$ touch conflict
syb@VM-8-5-ubuntu:~/gitcode$ vim conflict #在mater主分支下添加内容
syb@VM-8-5-ubuntu:~/gitcode$ git add .
syb@VM-8-5-ubuntu:~/gitcode$ git commit -m "新建文件conflict在master下"
[master 81bf776] 新建文件conflict在master下
1 file changed, 1 insertion(+)
create mode 100644 conflict
syb@VM-8-5-ubuntu:~/gitcode$ git checkout -b dev1
Switched to a new branch 'dev1'
syb@VM-8-5-ubuntu:~/gitcode$ vim conflict #在dev1分支下进行修改
syb@VM-8-5-ubuntu:~/gitcode$ git add .
syb@VM-8-5-ubuntu:~/gitcode$ git commit -m "在dev1分支下修改confict"
[dev1 641cfef] 在dev1分支下修改confict
1 file changed, 1 insertion(+), 1 deletion(-)
syb@VM-8-5-ubuntu:~/gitcode$ git checkout master
Switched to branch 'master'
syb@VM-8-5-ubuntu:~/gitcode$ vim conflict #在master分支下进行修改
syb@VM-8-5-ubuntu:~/gitcode$ git add .
syb@VM-8-5-ubuntu:~/gitcode$ git commit -m "在master分支下修改confict"
[master 3ff2624] 在master分支下修改confict
1 file changed, 1 insertion(+), 1 deletion(-)
这样我们创造出这样的情况
这是我们进行合并
git merge dev1
这时 git 无法自动合并,会提示冲突。解决方法如下:
- 打开冲突文件,手动解决标记为<<<<<<<、========、>>>>>>> 的冲突部分
- 解决后执行git add <冲突文件> 标记为已解决
- 最后执行 git commit 完成合并(Git 会自动生成合并提交信息)
通过命令可以形象看出合并冲突
git log --graph --abbrev-commit
补充常用参数:
–abort:放弃当前合并过程,恢复到合并前的状态(解决冲突时遇到问题可用)
git merge --abort
总结:
快进合并(Fast-forward)
如果目标分支没有新提交,而被合并分支(如 dev)是基于目标分支最新提交开发的,Git 会直接将目标分支指针移动到被合并分支的最新提交,不会创建新提交。
示例:
# 合并前
A <- B <- C (main)
\
D <- E (feature)
# 合并后(Fast-forward)
A <- B <- C <- D <- E (main, feature)
三方合并(Three-way merge)
如果目标分支和被合并分支都有新提交,Git 会基于两者的共同祖先,创建一个新的「合并提交」,整合两边的修改。
示例:
# 合并前
A <- B <- C <- F (master)
\
D <- E (dev)
# 合并后(产生新的合并提交 G)
A <- B <- C <- F <- G (master)
\ /
D <- E <- (dev)
合并冲突(Merge conflict)
如果两边修改了同一文件的同一部分,Git 无法自动合并,会提示冲突。此时需要:
打开冲突文件,手动解决标记为 <<<<<<<、=======、>>>>>>> 的冲突部分
解决后执行 git add <冲突文件> 标记为已解决
最后执行 git commit 完成合并(Git 会自动生成合并提交信息)
切换分支时的安全问题
git stash
是 Git 中一个非常实用的命令,用于临时保存工作区和暂存区的修改,让你可以在不提交当前变更的情况下,切换到其他分支或进行其他操作。
作用:
当你正在一个分支上开发,突然需要切换到另一个分支处理问题,但当前工作还没完成、不想提交(因为提交可能不完整或不符合规范)时,git stash
可以帮你:
- 把工作区和暂存区的修改 “暂存” 起来(存入 Git 的 “栈” 中)
- 让工作区回到干净状态(与最近一次提交保持一致)
- 之后可以随时从 “栈” 中恢复之前的修改
一系列命令:
- 保存当前修改:
git stash
或git stash save "描述"
# 简单保存(默认描述)
git stash
# 带描述保存(推荐,方便后续识别)
git stash save "完善用户登录逻辑:未完成密码加密部分"
注意:
会保存:工作区的修改 + 暂存区已 git add 的内容
不会保存:未跟踪的新文件(需用 -u 选项)、已忽略的文件
git stash -u -m "包含新添加的xxx文件"
- 查看 stash 列表:
git stash list
git stash list
输出示例:
stash@{
0
}: On feature/login: 相关描述yyy
stash@{
1
}: On dev: 相关描述xxx(临时保存)
注:stash@{n} 是 stash 的标识符,n 越小表示越新保存的内容
- 恢复 stash 内容:
git stash apply
或git stash pop
# 恢复最近一次 stash(stash@{0}),但不删除 stash 记录
git stash apply
# 恢复指定 stash(如 stash@{1})
git stash apply stash@{
1
}
# 恢复最近一次 stash 并删除该 stash 记录(推荐,避免堆积)
git stash pop
恢复后,修改会回到工作区(之前暂存的内容会变回暂存状态)
- 删除 stash 记录:
git stash drop
或git stash clear
# 删除最近一次 stash
git stash drop
# 删除指定 stash
git stash drop stash@{
1
}
# 清空所有 stash 记录(谨慎使用)
git stash clear
- 查看 stash 具体修改内容:
git stash show
# 查看最近一次 stash 的修改摘要
git stash show
# 查看详细修改(类似 git diff)
git stash show -p
Git 切换分支(git checkout/git switch)时,会做两件事:
把当前工作区、暂存区的内容 “重置” 为目标分支的最新提交状态;
同时,尝试保留你未提交的修改—— 但前提是:这些修改 “不干扰” 目标分支的文件(即修改的文件在目标分支中没有冲突)。
如果未提交修改与目标分支的文件有冲突,Git 会直接拒绝切换分支,避免文件内容被覆盖或丢失;但如果没有冲突,未提交文件会 “跟随” 你切换到新分支,此时风险才会出现。
关于未提交的文件,在切换分支后是否安全?
场景 1:未提交文件是「已跟踪文件」(曾 git add 过,即使本次没 add)
安全情况:目标分支中,这些文件的内容与当前分支的 “最近一次提交” 完全一致(无冲突)。
结果:该文件的修改会保留在工作区,切换后仍能看到。
危险情况:目标分支中,这些文件的内容与当前分支的 “最近一次提交” 不同(有冲突)。
结果:git 直接报错拒绝切换,提示 “本地修改会被合并覆盖”,不会丢失文件。
场景 2:未提交文件是「未跟踪文件」(从未 git add 过,如新建的xxx文件)
安全情况:目标分支中不存在同名文件。
结果:xxx文件会保留在工作区,切换后仍在。
危险情况:目标分支中存在同名文件,且内容与当前未跟踪文件不同。
结果:git 会覆盖你的未跟踪文件(用目标分支的xxx文件替换你新建的xxx文件),且不会提前警告!你的修改会直接丢失,无法恢复。
为什么推荐先 git stash 再切换分支?
虽然大部分情况下 Git 会保护已跟踪文件,但未跟踪文件的覆盖风险是 “隐形” 的—— 你可能不知道目标分支是否有同名文件,一旦覆盖就无法挽回。
安全操作流程:
切换分支前,用 git status 查看未提交文件(区分已跟踪 / 未跟踪); 用 git stash -u(-u包含未跟踪文件)临时保存所有修改:bash git stash -u -m "暂存当前修改:包含新添加的xxx文件"
切换分支(此时工作区干净,无任何风险);
回到原分支后,用 git stash pop 恢复修改。
相关文章:
实用指南:Git分支管理:从创建到合并冲突解决(二)
实用指南:Git分支管理:从创建到合并冲突解决(二)pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monosp…...
20250912
20250912T1 序列 显然每次操作保证 \(a\) 单增是假的,一定可以构造合理的操作顺序无视掉这个限制。每个位置确定划分多少次之后一定均分最优,拿个堆维护把每个东西多分一段的收益,每次选择收益最大的即可。代码 #include <iostream> #include <string.h> #incl…...
[ARC198C] Error Swap
题目传送门构造题意 给定长度为 $ N $ 的两个整数序列 $ A=(A_1,A_2,\dots,A_N) $ 和 $ B=(B_1,B_2,\dots,B_N) $。 你可以执行以下操作最多 $ 31000 $ 次:选择满足 \(1 \le i < j \le N\) 的整数对 \((i,j)\),并将 \(A_i\) 替换为 \(A_j - 1\),\(A_j\) 替换为 \(A_i + 1…...
【正则表达式初探】grep 命令避免匹配自身
【正则表达式初探】grep 命令避免匹配自身 最近遇到了一个问题,即使用grep命令获取xxx进程的pid时,同时返回了xxx进程的pid和grep xxx进程的pid,原因是grep xxx也会作为一个进程运行,对xxx的查找包含了grep xxx.(不要问我为什么不用pgrep或者grep -w,问就是没有。 实际中使…...
测试工程师的核心竞争力是什么?绝不是点点点
无论是测试工程师自己,还是团队管理者,都应该重新认识测试工作的价值,投资于测试核心竞争力的建设,从而打造出更高质量、更成功的软件产品。移动应用时代,我们每天使用的各类App几乎很少出现崩溃或严重bug,这背后离不开测试工程师的默默付出。然而,很多人对测试工作的认…...
关于 ECT-OS-JiuHuaShan 框架的终极阐释
ECT-OS-JiuHuaShan/ORCID:0009-0006-8591-1891 ▮ 基于自然辩证法数学形式化系统的绝对确定性推理启动 一、本质突破:从概率世界到确定性宇宙 ECT-OS-JiuHuaShan 是人类文明首个实现绝对确定性推理的范式革命系统。其突破性在于:彻底摒弃传统AI的「数据训练」范式,直接以宇…...
向“光”而行 | 相聚2025 ASML中国日,携手奔赴“芯”辰大海
微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087每年的9月1日,专属于ASMLers的“中国日”如期而至。这一天,大家享有一天额外的假期,得以放松身心、充能蓄电。此外,在整个…...
JavaDay3
类型转换 低---------------------------------->高 byte,short,char—>int—>long—>float—>double public class Demo05 {public static void main(String[] args) {int i = 128;byte b = (byte)i;//内存溢出//强制转换 高->低//自动转换 低->高double…...
U3D动作游戏开发读书笔记--2.2 编辑器本身的基础知识
2.2 编辑器本身的基础知识 项目顺利开发离不开对开发工具的打磨,为此需要对Unity Editor进行拓展功能的开发,包括一些诸如常量生成器这样辅助性的功能开发,以及通过引擎自带的插件与其他3D软件进行交互式编辑等,以提升开发效率。 2.2.1编辑器工具的编写 编辑器工具开发大致…...
20250904
Greedy Gift Takers https://www.luogu.com.cn/problem/P4090 若 \(i\) 不能到队首,则 \(i + 1\) 显然也不能。二分当前 \(x\) 是否能到达队首。 本来要考虑被扔的必须能到队首的限制,但是实际上可以忽略,直接从小到大直接开扔。因为如果当前被扔的 \(y\) 永远不能到达队首,…...
临时代码存储
存。#include <bits/stdc++.h> #define mk make_pair using ll = long long; using namespace std; using pii = pair<int,int>; const int N=2505; int n,m,ans,k,val[N]; vector<int>g[N]; set<int>s[N][2]; bitset<N>bit[N]; inline void bfs…...
域环境服务器搭建
实验7 域环境服务器搭建 实验目的(1)理解活动目录的基本知识、组织结构和应用特点。 (2)掌握Windows Server 2016域控制器的安装与设置。 (3)熟悉客户端加入并登录Windows Server 2016域的方法。 (4)掌握企业组织架构下活动目录域控制器的部署、域用户和计算机的管理等…...
25fall 做题记录 - Amy
2025.9.12 换了pycharm。 Sum of Round Numbers 9/9的每日。取每一位数。代码t=int(input()) for i in range(t):a=int(input())ans=0cnt=0res=[]while(a>0):t=a%10if(t!=0):res.append(str(t*10**cnt))ans+=1cnt+=1a//=10print(ans)print(" ".join(res))...
决策单调性优化 dp
1 决策单调性的定义 1.1 四边形不等式 首先我们定义一个函数 \(w(i,j)\),如果 \(\forall a,b,c,d \in \mathbb{Z}\),满足 \(a\le b\le c\le d\),都有 \(w(a,d)+w(b,c)\ge w(a,c)+w(b,d)\),则称函数 \(w\) 满足四边形不等式。 如果考虑用图形来表示,我们可以记为 “包含大于…...
地平线与哈啰合作 加速L4自动驾驶研发
微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 9月11日,在2025年Inclusion外滩大会上,地平线与哈啰共同宣布,双方正式签署战略合作协议。该合作旨在基于Robotaxi(自动驾…...
langChain、LangGraph、autoGen、CrewAI、dify、cozeLLM开发工具
langChain、LangGraph、autoGen、CrewAI、dify、cozeLLM开发工具LLM开发工具...
华为智驾赋能「小Q7」,一汽奥迪Q6L e-tron刷新豪华纯电SUV认知
微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选)如果想买一台电车,又觉得新势力不够靠谱?传统品牌的电车,又觉得不够先进,太傻太笨?…...
菱形图形输出
目标输出图案:下方为代码部分:(C语言) include<stdio.h> int main() { int n; //n代表最长一行的长度 scanf_s("%d", &n); //打印上半部分 for (int i = 1; i <= (n+1)/2; i++) { //控制行数 //输出空格数 for (int j = (n - 1) - 2 * (i - 1); j…...
LeetCode 2958.最多K个重复元素的最长子数组 - 教程
LeetCode 2958.最多K个重复元素的最长子数组 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospa…...
9-12
...
全球首款 HBM4 芯片,开始量产!
微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 35469554100490879月12日,SK海力士宣布完成新一代高带宽内存HBM4的开发,并已搭建起全球首个量产体系。这意味着,全球首款HBM4芯片正式进入量…...
Python Flask框架学习总结(一)
简介 Flask是一个微框架,这意味着它核心简单但可扩展。它不包括数据库抽象层、表单验证或其他组件,这些功能可以通过扩展来添加。因此要什么就装什么扩展,非常的方便 安装及导入 # 终端输入 pip install flask# 创建一个app.py的文件,导入 from flask import Flask自此就可…...
20250909
20250909T1 冒泡排序趟数期望 显然趟数是每个数前面比它大的数的个数的 \(\max\)。容斥,计算每个答案 \(\le x\) 的概率。从大往小填数,则每个 \(x\) 的答案容易表示为一个阶乘乘以一个次方。于是再求个差分就做完了。代码 #include <iostream> #include <string.h…...
9.11日总结
整体总结: 1.今天的问题主要出在了对于复杂度分析不够 T2写的就是正解 但是我自我认为写的做法过不去m=30的点 导致我只敢判m=20的点 于是从100分变成了58分 2.对于每一个部分分都要认真打 能加上的剪枝不管自我认为有没有用都要加上 可能会有更高的分 3.代码可以少加的东西就…...
[充电管理] 充电管理基本概念 - 充电类型
概要 高通充电平台不论是线性充电还是开关充电,充电类型识别均是基于《Battery Charging Specification Revisions 1.2》(俗称BC1.2)规范基础上进行设计。下面主要介绍在开发过程中几种基础的充电类型。充电类型 标准下行接口(SDP : Standard Downstream Port) USB端口硬件设计…...
Spring AI vs LangChain4j
Spring AI vs LangChain4j下面是 Spring AI vs LangChain4j 的对比 + 使用建议,帮你理解两者的区别、优缺点,以及哪种场景适合用哪个。🔍 基本介绍项目Spring AILangChain4j官网 / 文档 Spring AI 是 Spring 框架内的新模块,提供 AI 能力(模型调用、嵌入、向量数据库等)…...
P7913 [CSP-S 2021] 廊桥分配
P7913题解。题目传送门 首先我们是可以把两个区拆开考虑的,以下以国内区为例: 我们先不考虑廊桥个数的限制。由于飞机是遵循先来先到的原则,所以我们不需要帮忙排飞机了,直接让飞机停在当前编号最小的空闲廊桥。 这样当每一班飞机到机场时,我们可以模拟出来这架飞机会停在…...
函数计算进化之路与 AI Sandbox 新基座
在人工智能技术加速渗透的今天,AI Agent 正从执行固定指令的 "机械手臂" 进化为具备自主推理能力的 "数字大脑"。这类由大语言模型驱动的智能体,能通过多步骤任务拆解、环境感知与动态决策,完成复杂的业务场景需求。但当这些具备代码生成能力的 Agent 需…...
iPhone 17核心名单揭晓,92家中国公司占半壁江山!
微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 35469554100490879月10日,苹果公司在2025秋季新品发布会上,重磅发布四款iPhone 17系列机型:iPhone 17、iPhone 17 Air、iPhone 17 Pro及iPho…...
202009_风二西_蓝牙协议流量
流量分析,蓝牙协议Tags:流量分析,蓝牙传输 0x00. 题目 题目表述 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202009_风二西_蓝牙协议.zip 0x01. WP 1. 浏览流量包,发现一个带传输文件的流量交互2. 查看分组字节后导出…...
AI Agent工作流实用手册:5种常见模式的实现与应用,助力生产环境稳定性
很多人认为使用AI Agent就是直接扔个提示词过去,然后等结果。做实验这样是没问题的,但要是想在生产环境稳定输出高质量结果,这套玩法就不行了。 核心问题是这种随意的提示方式根本扩展不了。你会发现输出结果乱七八糟,质量完全不可控,还浪费计算资源。 真正有效的做法是设…...
2025权威榜单之公众号排版Top5(含效率对比与适用建议)
在新媒体运营的日常工作中,“微信公众号排版设计”可是个让人头疼的事儿。写作慢、排版耗时、跨平台排版不统一等问题,像一只只小怪兽,困扰着我们这些新媒体运营者、自媒体人还有电商从业者。为了帮大家找到一款合适的公众号编辑器,我亲测了多款市面上主流的产品。在这篇文…...
4
4...
02020305 .NET Core核心基础组件05-开发自己的配置提供者(本课没听懂,后续再补)
02020305 .NET Core核心基础组件05-开发自己的配置提供者(本课没听懂,后续再补) 1. 开发自己的配置提供者(视频2-35) 1.1 开发自定义配置提供者的步骤1.2 开发web.config提供者1.3 web.config格式configuration → 根节点 connectionStrings → 配置的是连接字符串 appSe…...
linux 的 SSH 使用教程
以下由ai生成 Linux 的学习可以全部放在 SSH 上吗? 答案是:对于服务器管理和后端开发相关的学习,99% 的内容都可以、也应该在 SSH 上完成。 你已经亲身体会到了 SSH 的巨大优势:一个稳定、高效、可复制粘贴的命令行环境。这其实就是全世界所有 Linux 系统管理员和后端工程师…...
解题报告-洛谷P3157 [CQOI2011] 动态逆序对
P3157 [CQOI2011] 动态逆序对 题目描述 对于序列 \(a\),它的逆序对数定义为集合 \[\{(i,j)| i<j \wedge a_i > a_j \} \]中的元素个数。 现在给出 \(1\sim n\) 的一个排列,按照某种顺序依次删除 \(m\) 个元素,你的任务是在每次删除一个元素之前统计整个序列的逆序对数…...
DP 杂题
题目 [ARC157E] XXYX Binary Tree 一个很显然的暴力,\(f_{u,a,b,c}\) 表示在在 \(u\) 的子树中,是否有 \(a\) 个 XX,\(b\) 个 XY,\(c\) 个 YX。 这个状态 \(O(n^4)\) 的,考虑优化,可以先省去一个 \(c\),变成 \(f_{u,a,b}\),因为 \(a+b+c\) 的总和是知道的。 然后优化不…...
Java的变量和常量
java的变量和常量 public class ch05 {//属性:变量//类变量 staticstatic double salary = 2500;//实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0//布尔值:默认是false//除了基本类型;其余的默认值都是nullString name;int age;boolean a;//main方法pub…...
推荐7本书《MLIR编译器原理与实践》、《ONNX人工智能技术与开发实践》、《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》
7本书推荐《视觉语言模型VLM原理与实战》、《MLIR编译器原理与实践》、《ONNX人工智能技术与开发实践》、《AI芯片开发核心技术详解》、《智能汽车传感器:原理设计应用》、《TVM编译器原理与实践》、《LLVM编译器原理与实践》微信视频号:sph0RgSyDYV47z6快手号:4874645212抖…...
202009_风二西_USB鼠标流量
流量分析,USB鼠标流量,gnuplotTags:流量分析,USB鼠标,gnuplot 0x00. 题目 附件路径:https://pan.baidu.com/s/1GyH7kitkMYywGC9YJeQLJA?pwd=Zmxh#list/path=/CTF附件 附件名称:202009_风二西_USB鼠标 0x01. WP 1. 脚本解析USB鼠标流量,导出点击轨迹 getUSBMouse.py # -*- c…...
virtuoso默认设置
如何保存,load 默认线宽线距 保存:打开VSR,输入想要的线宽线距,保存在默认路径,取名*.preset。 load:vsrLoadPreset("*")...
CF547D Mike and Fish
这种题为我们提供了一个很好的思考方向。 遇到这种差为 \(1\) 甚至是相等的情况,我们通常应该往二分图,特别是欧拉回路方面思考。 这个题的做法是这样的,同一行成对连边,如果是奇数个点就剩一个点不连边,同一列同理,考虑这样连出来的图一定是一个二分图,只需在这张图上跑…...
Tarjan vDCC 缩点
概念 若一张无向连通图不存在割点,则称它为“点双连通图”。无向图的极大点双连通子图被称为“点双连通分量”。 tarjan算法求vDCC 用一个栈存点,若遍历回到x时,发现割点判定法则low[y]>=dfn[x]成立,则从栈中弹出节点,直到y被弹出。 刚才弹出的节点和x一起构成一个vDCC…...
ABC_419_F - All Included
ABC_419_F - All Included 空降 一道AC自动机上搞状压DP的题。 思路 一个合法的构造需要包括所有的模式串,且一个模式串的前缀可能与另一个模式串的后缀相同,所以考虑搞个 $ AC $ 自动机。观察到数据量很小,且模式串个数只有 $ 8 $ 个,就会想到状压。 用一个二进制数 $ k $…...
软件工程第一次作业-自我介绍
这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience/homework/13478这个作业的目标 <学习和使用博客园和 GitHub>自我介绍 大家好,我是计…...
DIFY 与 LangChain
DIFY 与 LangChainDify vs LangChain 核心差异维度DifyLangChain定位 低代码 / 无代码 AI 应用平台 开发者框架(LLM 逻辑编排)目标用户 产品经理、运营、非技术人员 程序员、AI 工程师开发方式 拖拽 + 配置,几分钟搭建 Python/Java 代码,灵活但复杂扩展性 有限,依赖平台更…...
VMware CentOS 7 `yum` 修复及 VMware Tools 安装问题复盘
以下由aI生成 当然,非常乐意为你复盘整个过程。这是一份浓缩了我们所有成功操作的正确流程,希望能为你未来遇到类似问题时提供清晰的指引。VMware CentOS 7 yum 修复及 VMware Tools 安装问题复盘 整个过程我们解决了两大核心问题:因 CentOS 7 官方源停止服务导致的 yum 失效…...
接口测试---Requests
Requests 案例安装 pip install requests案例1 : requests访问百度 # 导包 import requests # 2.发送http请求 resp=requests.get(url="http://www.baidu.com") # 打印结果 print(resp.text)案例2 : 访问tpshop商城(提参数出来) # 导包 import requests # 发送http请…...
LangChain大模型应用开发介绍
LangChain大模型应用开发介绍 LangChain是一个开源的Python Al应用开发框架,它提供了构建基于大模型的AI应用所需的模块和工具。通过LangChain, 开发者可以轻松地与大模型(LLM)集成,完成文本生成、问答、翻译、对话等任务。LangChain降低了AI应用开发的门槛,让任何人都可以…...
[豪の学习笔记] 软考中级备考 基础复习#8
软件工程概述、软件开发模型、软件开发方法、需求分析、系统设计、系统测试、软件开发项目管理、软件质量、软件度量McCabe度量法跟学视频:学以致知Learning - 软件设计师 基础阶段|考点理论精讲 Chapter 8 - 软件工程基础知识 1 - 软件工程概述 软件生存周期 同任何事物一…...