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

软件工程实践一:Git 使用教程(含分支与 Gitee)

目录
  • 目标
  • 一、快速上手
    • 1. Windows 安装 Git
    • 2. 初始化 / 克隆
  • 二、核心概念速览
  • 三、常用命令清单
    • 1) 查看状态与差异
    • 2) 添加与提交
    • 3) 历史与回溯
    • 4) 撤销与恢复(Git 2.23+ 推荐新命令)
    • 5) 忽略文件
  • 四、分支与合并(Branch & Merge)
    • 1) 创建与切换
    • 2) 更新主干与合并
    • 3) 推送与合并回主干
    • 4) 解决冲突
    • 5) 常见工作流
  • 五、远程协作(Remote)
    • 1) 添加与管理远程
    • 2) 获取与推送
    • 3) 追踪分支(上游)
  • 六、Gitee(码云)使用
    • 1) 创建仓库
    • 2) 使用账号密码或个人访问令牌(推荐)
    • 3) 绑定远程并推送(以 HTTPS 为例)
    • 4) 从 GitHub 迁移到 Gitee(镜像)
  • 七、进阶:变基、挑拣、暂存与标签
    • 1) 交互式变基(整理提交历史)
    • 2) 挑拣(把某提交拷到当前分支)
    • 3) 暂存(临时搁置工作)
    • 4) 标签(发布打标)
  • 八、常见问题速查
  • 九、实战练习:20 步从零到协作

目标

  • 掌握 Git 基础概念与常用命令:仓库、提交、暂存区、分支
  • 熟悉常见工作流:创建/切换分支、合并、变基、解决冲突
  • 了解远程协作:添加远程、推送/拉取、使用 Gitee(码云)

提示:Windows 可使用 Git Bash 或 PowerShell(需先安装 Git for Windows)。


原文链接:https://blog.ybyq.wang/archives/1095.html


一、快速上手

1. Windows 安装 Git

  • 下载与安装
    • 前往 Git for Windows 官网 或 Gitee 镜像站下载安装包
    • 双击安装包,按向导进行安装
  • 验证与基础配置
git --version
which bash
# 基本配置(签名和默认分支)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git config --global init.defaultBranch main
git config --global color.ui auto
# Windows:换行符自动转换(跨平台推荐)
git config --global core.autocrlf true
# 可选:将 VS Code 设为默认编辑器
git config --global core.editor "code --wait"
  • 账号与 Gitee 绑定(推荐使用个人访问令牌)
# 方式一:账号密码(不推荐)
# 推送时按提示输入 Gitee 用户名和密码# 方式二:个人访问令牌(推荐,更安全)
# 1. 登录 Gitee → 个人设置 → 私人令牌
# 2. 创建令牌并勾选需要的权限(如 projects)
# 3. 推送时用户名填 Gitee 用户名,密码填该令牌

2. 初始化 / 克隆

# 初始化本地仓库(在当前目录创建 .git)
git init# 克隆远程仓库
git clone <repo-url>

二、核心概念速览

  • 工作区(Working Directory):你看到的文件
  • 暂存区(Staging Area):下次提交的快照
  • 本地仓库(Local Repository):提交历史(HEAD 指向的分支)
  • 远程仓库(Remote):如 origin(GitHub/Gitee 等)

三、常用命令清单

1) 查看状态与差异

git status                  # 当前状态
git diff                    # 工作区 vs 暂存区
git diff --staged           # 暂存区 vs 最近一次提交

2) 添加与提交

git add <file>              # 添加到暂存区
git add .                   # 添加所有修改
git commit -m "feat: add user api"  # 提交# 修改上一条提交信息(未推送时)
git commit --amend -m "fix: correct message"

3) 历史与回溯

git log --oneline --graph --decorate --all# 查看某次提交内容
git show <commit>

4) 撤销与恢复(Git 2.23+ 推荐新命令)

# 丢弃工作区更改(小心使用)
git restore <file># 从暂存区移除(保留工作区修改)
git restore --staged <file># 还原一个提交(生成反向提交)
git revert <commit># 重置分支到某提交(危险,谨慎)
# --soft: 仅移动 HEAD;--mixed: 重置暂存区;--hard: 丢弃工作区
git reset --mixed <commit>

5) 忽略文件

创建 .gitignore

# Java/IDE 示例
/target/
*.class
*.log
.idea/
*.iml
.DS_Store

四、分支与合并(Branch & Merge)

1) 创建与切换

# 创建并切换到新分支
git switch -c feature/login
# 在已有分支间切换
git switch main

2) 更新主干与合并

# 将 feature/login 合并到 main
git switch main
git merge feature/login# 同步主干最新(需先配置远程)
git fetch origin
git switch main
git pull --rebase origin main# 回到功能分支并合并主干变更
git switch feature/login
# 策略 1:合并提交(保留分叉历史)
git merge main --no-ff -m "merge main into feature/login"
# 策略 2:变基(历史更线性)
# 说明:将当前分支的提交“挪到” main 最新之后,减少合并提交
git rebase main

3) 推送与合并回主干

# 首次推送功能分支并建立上游
git push -u origin feature/login# 发起合并(建议 PR/MR 流程),或本地合并:
git switch main
git merge --no-ff feature/login -m "feat(login): implement basic login"
git push origin main

4) 解决冲突

# 冲突后,编辑冲突文件并标记已解决
git add <conflicted-files>
# 若在 rebase 流程:
git rebase --continue
# 若放弃 rebase:
git rebase --abort

5) 常见工作流

  • Git Flow:main + develop + feature/release/hotfix(适合版本节奏固定)
  • Trunk-Based:main + 短分支 + 小步快跑 + CI(多数团队推荐)

五、远程协作(Remote)

1) 添加与管理远程

git remote -v
# 添加远程别名 origin
git remote add origin <url>
# 修改远程地址
git remote set-url origin <new-url>

2) 获取与推送

git fetch origin                  # 仅拉取,不更新本地分支
git pull --rebase origin main     # 拉取并变基(历史更干净)
git push origin main              # 推送

3) 追踪分支(上游)

# 建立本地分支与远程上游的关联(首次)
git push -u origin feature/x
# 之后即可:
# git push
# git pull --rebase
# 如有冲突:
# git add .
# git rebase --continue 或 git merge --continue

六、Gitee(码云)使用

1) 创建仓库

  • 登录 Gitee,新建仓库,获取 HTTPS 或 SSH 地址

2) 使用账号密码或个人访问令牌(推荐)

# 方式一:账号密码(推送时按提示输入)
# 方式二:个人访问令牌(推荐)
#   1) Gitee 个人设置 → 私人令牌
#   2) 创建令牌并勾选权限(如 projects)
#   3) 推送时用户名=Gitee 用户名,密码=个人令牌

3) 绑定远程并推送(以 HTTPS 为例)

# 在已有本地仓库中添加 origin(Gitee)
git remote add origin https://gitee.com/<your-namespace>/<repo>.git
# 首次推送(设置上游)
git push -u origin main

4) 从 GitHub 迁移到 Gitee(镜像)

  • 方案 A:在 Gitee 仓库设置中使用“从 GitHub 导入仓库”
  • 方案 B:本地设置两个远程,手动推送
git remote add github git@github.com:<ns>/<repo>.git
git remote add gitee  https://gitee.com/<ns>/<repo>.git
# 推送全部分支与标签
git push gitee --all
git push gitee --tags

七、进阶:变基、挑拣、暂存与标签

1) 交互式变基(整理提交历史)

git rebase -i HEAD~5  # squash / fixup / reword / reorder

2) 挑拣(把某提交拷到当前分支)

git cherry-pick <commit>

3) 暂存(临时搁置工作)

git stash push -m "wip: refactor"
git stash list
git stash apply  # 或 pop

4) 标签(发布打标)

git tag v1.0.0
git tag -a v1.0.1 -m "hotfix"
git push origin --tags

八、常见问题速查

  • push 被拒绝:先 git fetch,再 git rebase origin/main 或开分支提 PR
  • Detached HEAD:git switch <branch> 回到分支;需要保存可新建分支 git switch -c temp
  • 误删文件:从最近提交恢复 git restore --source=HEAD -- <file>
  • 大文件入库:考虑 Git LFS;或加入 .gitignore 并清理历史
  • 行尾换行混乱:检查 core.autocrlf 设置;跨平台建议 true

九、实战练习:20 步从零到协作

场景:在本地新建项目 → 管理变更 → 分支开发 → 合并与解决冲突 → 连接远程并推送 → 打标签与回滚。命令可在 PowerShell 或 Git Bash 中执行。要求:提交信息使用中文,示例代码使用 Java。

  1. 新建目录并初始化仓库
mkdir demo-git && cd demo-git
git init
  1. 配置用户名邮箱(仅首次或需要覆盖时)
git config user.name "学生"
git config user.email "student@example.com"
  1. 创建 README 并首次提交(中文提交信息)
echo "# Demo Git 项目" > README.md
git add README.md
git commit -m "初始化仓库并添加 README"
  1. 新建 .gitignore 并提交(中文提交信息)
echo -e "/dist/\n*.log" > .gitignore
git add .gitignore
git commit -m ".gitignore:忽略构建产物和日志"
  1. 创建 Java 主类并提交(App v1)
mkdir src
# 写入 src/App.java(v1)
echo "public class App {" > src/App.java
echo "  public static void main(String[] args) {" >> src/App.java
echo "    System.out.println(\"v1\");" >> src/App.java
echo "  }" >> src/App.java
echo "}" >> src/App.javagit add src/App.java
git commit -m "新增 Java 主类 App(v1)"
  1. 创建功能分支并切换
git switch -c feature/login
  1. 在功能分支新增登录功能类(提交 1)
# 写入 src/AuthService.java(仅 login)
echo "public class AuthService {" > src/AuthService.java
echo "  public boolean login() { return true; }" >> src/AuthService.java
echo "}" >> src/AuthService.javagit add src/AuthService.java
git commit -m "登录功能:新增 AuthService,包含 login 方法"
  1. 在功能分支完善登出功能(提交 2)
# 覆盖写入,新增 logout 方法
echo "public class AuthService {" > src/AuthService.java
echo "  public boolean login() { return true; }" >> src/AuthService.java
echo "  public boolean logout() { return true; }" >> src/AuthService.java
echo "}" >> src/AuthService.javagit add src/AuthService.java
git commit -m "登录功能:补充 logout 方法"
  1. 切回主分支并做一次修复(覆盖重写 App.java)
git switch main
# 将 App.java 覆盖为含 HOTFIX 的版本
echo "public class App {" > src/App.java
echo "  public static void main(String[] args) {" >> src/App.java
echo "    System.out.println(\"v1\");" >> src/App.java
echo "    System.out.println(\"HOTFIX\");" >> src/App.java
echo "  }" >> src/App.java
echo "}" >> src/App.javagit add src/App.java
git commit -m "主分支修复:修正启动日志(HOTFIX)"
  1. 将主干变更同步到功能分支(rebase,更线性)
git switch feature/login
git rebase main
  1. 若出现冲突则解决并继续(无冲突可跳过)
# 编辑有冲突的文件,确认内容后:
git add .
git rebase --continue
  1. 将功能分支合并回主干(无快进,保留记录)
git switch main
git merge --no-ff feature/login -m "合并 feature/login:登录功能完成"
  1. 查看提交历史图
git log --oneline --graph --decorate --all
  1. 创建发布标签(v1.0.0)
git tag -a v1.0.0 -m "首次发布版本"
  1. 添加远程并首次推送(以 Gitee 为例,替换为你的仓库)
git remote add origin https://gitee.com/<your-namespace>/<repo>.git
git push -u origin main
  1. 推送功能分支与标签
git push -u origin feature/login
git push origin --tags
  1. 创建新分支新增 Banner 类,并将提交挑拣到 main
git switch -c feature/banner
# 写入 src/Banner.java
echo "public class Banner {" > src/Banner.java
echo "  public static void show() { System.out.println(\"BANNER\"); }" >> src/Banner.java
echo "}" >> src/Banner.javagit add src/Banner.java
git commit -m "新增 Banner 类:打印横幅"
# 回到 main,通过分支名挑拣该提交(取分支 tip 提交)
git switch main
git cherry-pick feature/banner
  1. 制造一个误提交并回退工作区/暂存区
echo "wrong" > tmp.txt
git add tmp.txt
# 发现误加:从暂存区移除,保留工作区
git restore --staged tmp.txt
# 丢弃工作区更改(小心)
git restore tmp.txt
  1. 修改最近一次提交的提交信息(未推送前),并升级 App 到 v2
# 覆盖写入 App.java(v2)
echo "public class App {" > src/App.java
echo "  public static void main(String[] args) {" >> src/App.java
echo "    System.out.println(\"v1\");" >> src/App.java
echo "    System.out.println(\"v2\");" >> src/App.java
echo "  }" >> src/App.java
echo "}" >> src/App.javagit add src/App.java
git commit -m "升级主程序至 v2"
# 发现提交信息需要更准确:
git commit --amend -m "App 升级:输出 v1 与 v2"
  1. 回滚某次已推送的功能(生成反向提交,安全)
# 假设要回滚上一步提交:
git revert HEAD
# 推送到远程:
git push origin main

提示:

  • 如遇推送被拒绝,先执行 git fetchgit pull --rebase origin main 同步。
  • 在多人协作中,建议使用 Pull Request/Merge Request 进行代码评审与合并。

作者:xuan
个人博客:https://blog.ybyq.wang
欢迎访问我的博客,获取更多技术文章和教程。

相关文章:

软件工程实践一:Git 使用教程(含分支与 Gitee)

目录目标一、快速上手1. Windows 安装 Git2. 初始化 / 克隆二、核心概念速览三、常用命令清单1) 查看状态与差异2) 添加与提交3) 历史与回溯4) 撤销与恢复(Git 2.23+ 推荐新命令)5) 忽略文件四、分支与合并(Branch & Merge)1) 创建与切换2) 更新主干与合并3) 推送与合并…...

我用AI给自己做了一整套专属表情包!攻略

本文分享用AI制作专属表情包的实用教程。群聊斗图,关键时刻找不到图,真的太憋屈了! 别再到处“偷”图了,最近发现用AI给自己做表情包,超简单,而且特别爽!😎1️⃣灵感和准备 一切都从一张照片开始。找一张光线好的高清正脸自拍,这是你所有表情包的“灵魂”!越清晰,A…...

20250916 之所思 - 人生如梦

20250916 之所思做的不好的地方:1. 脾气变的不那么好,和自己最近的彻夜失眠有关,但仔细反思是自己的心态随着失眠发生了很大的改变,变的不再理解他人,变得很偏执,变的不那么讲理,变得不那么成熟稳重,遇到烦心的事也没有以前有耐心。缺点太多了,多站在对方的角度看问题…...

Vue3项目开发专题精讲【左扬精讲】—— 在线教育网站系统(基于 Vue3+TypeScript+Vite 的在线教育网站系统系统设计与实现)

Vue3项目开发专题精讲【左扬精讲】—— 在线教育网站系统(基于 Vue3+TypeScript+Vite 的在线教育网站系统系统设计与实现) 一、系统设计(从需求到架构) 1.1、需求分析(明确核心目标与用户场景)1.2、系统功能设计(7个核心页面) 1.2、系统功能结构图 二、​商城网站系统运…...

20250915

20250915T1 ZZH 的游戏 二分答案之后,两个点轮流跳到当前能跳到的最小点。如果没法跳了且不都在 \(1\),那么无解。容易发现这是对的,可以通过建重构树维护。然后发现二分答案不是必要的,只需要每次没法跳的时候手动开大答案即可。复杂度瓶颈在建重构树的并查集。代码 #inc…...

Python Socket网络编程(4)

协程 微线程,切换执行 比如遇到IO等待的时候可以自动切换,提升线程利用率,多用在IO等待你想干点别的...

今日学习 dos命令和Java基础语法

今日学习 dos命令和Java基础语法 dos命令 常用快捷键ctrl+c 复制 ctrl+v粘贴 ctrl+x剪切 ctrl+z撤销 ctrl+s保存 ctrl+f查找 ctrl+shift+ESC 任务管理器(电脑死机时,可用于结束进程,explore,桌面进程) shift+delete永久删除 ALT+F4关闭窗口 ALT+TAB切换窗口/程序 win+R命令…...

课前问题列表

1.3 课前问题列表 方法相关问题static void changeStr(String x) {x = "xyz";}static void changeArr(String[] strs) {for (int i = 0; i < strs.length; i++) {strs[i] = strs[i]+""+i;}}public static void main(String[] args) { String x = &qu…...

switch中初始化变量

在 C++ 的 switch 语句中,switch 是 “跳转式” 控制结构,case 标签并非独立的语句块,若直接在 case 下初始化变量,可能导致变量作用域混乱、未初始化就被使用等问题,甚至触发编译错误。 1.跨 case 的变量作用域冲突 在某个 case 中初始化的变量,其作用域会覆盖后续 case…...

office2024免费永久激活安装包下载安装教程包含(下载安装配置激活)

大家好!最近总有人问我 Office 2024 专业增强版怎么装,今天特意整理这份超详细的 Office 2024 专业增强版下载安装教程,从电脑能不能装、在哪安全下载,到一步步安装激活,再到遇到问题怎么解决,全给大家说清楚,新手也能跟着装成功,建议收藏备用!目录一、Office 2024 专…...

vue2和vue3一时转不过来

以下是 Vue2 和 Vue3 在核心语法和功能上的主要区别,结合具体代码示例说明:一、响应式数据定义方式 1. ​​数据声明位置​​ // Vue2 选项式 API export default {data() {return {name: iwen,list: []}} }// Vue3 组合式 API import { ref, reactive } from vue export def…...

怎么查询电脑的登录记录及密码更改情况? - Li

怎么查询电脑的登录记录及密码更改情况? 写这个随笔的源头是我在一家公司上班,他们自己电脑打不开,一口咬定办公室的电脑莫名其妙打不开了,是我在被他们违规辞退后设定的密码,另将监控室电脑加密,且未告知公司任何人。 莫名其妙,因为本来就没设密码啊!(躺倒) 当然最后…...

C语言结构体中的内存对齐

C语言结构体内存对齐 在C语言编程中,结构体是一种非常重要的数据类型,它允许我们将不同类型的数据组合在一起。然而,当涉及到结构体在内存中的存储时,有一个关键的概念——内存对齐,这往往容易被忽视,但却对程序的性能和内存使用有着重要影响。 一、结构体大小计算的“理…...

该练习 DP 了!

区间DP 洛谷P3147Problem 定义 \(f[i][j]\) 存储从左端点 \(j\) 开始,能合并出 \(i\) 的右端点位置,将其设为 \(k\) 。 下面我们推转移方程。从题意可以看出,两个相邻的 \(i-1\) 能够合并出 \(i\) 。那么在 \(f[i][j]\) 后所对应的就是 \(f[i][k]\),这两个 \(i\)合并能够得…...

本周计划

周三: 上午 8:00~10:30 新领军 10:30~11:30 ZR NOIPD3 T4 下午模拟赛 晚上新领军习题课两节 周四: 上午 8:00~11:30 补好题分享 2 道 下午 2:00~4:30 补模拟赛 晚上 6:30~8:00 补模拟赛或好题分享 周五 上午 8:00~11:30 补好题分享 2 道 下午 2:00~5:30 准备下个周好题分享,…...

PPT文件太大?一招「无损」压缩图片,秒变传输小能手!

本文介绍的方法基于「PPT百科网」提供的在线分析工具,可智能评估并指导压缩过程,确保最佳效果。 PPT文件体积暴涨,99%的根源在于内部图片分辨率过高。直接使用PowerPoint自带的“压缩图片”功能虽然简单,但如同一刀切,可能导致在其他设备上播放时图片模糊,风险不可控。 「…...

9月16模拟赛

题目很难 主要是没有找对策略 就是没有及时去想部分分 怎么说呢 实力太弱 其实部分分拿完也会有个不错的成绩 无所谓 csp rp++!...

C++ 单例 Meyers Singleton(迈耶斯单例)

Meyers Singleton(迈耶斯单例)是 C++ 中实现单例模式的一种简洁高效的方法,由 C++ 专家 Scott Meyers 提出。其核心原理是利用局部静态变量的初始化特性保证单例的唯一性和线程安全性(C++11 及以后标准)。 1、核心原理局部静态变量的初始化特性 在 C++ 中,函数内的局部静…...

EF Core 与 MySQL:查询优化详解

EF Core 与 MySQL:查询优化详解 1. 使用 AsNoTracking 提高查询性能 基本用法// 常规查询(会跟踪实体变更) var products = context.Products.Where(p => p.Price > 100).ToList();// 使用 AsNoTracking(不跟踪实体变更,性能更好) var products = context.Product…...

短视频营销运营资深导师张伽赫,东莞绳木传媒创始人

东莞绳木传媒创始人张伽赫,短视频营销运营领域的资深导师。凭借其对行业趋势的敏锐洞察与实战经验,已成为企业数字化转型中短视频营销领域的标杆人物。他深耕短视频赛道多年,不仅构建了从账号定位、内容创作到流量转化的完整方法论,更通过绳木传媒为企业提供“AI+短视频”全…...

20250913

T4。T1 查询被包含的区间 将区间视为平面上的点 \((l, r)\),则每次询问的合法范围容易表示,是一个三角形。可以通过两步容斥转化为一个一维偏序和三个二维偏序。直接做就好了。代码 #include <iostream> #include <algorithm> #define lowbit(x) ((x) & (-(…...

9.13日总结

整体总结: 1.在自己的大样例出问题时要及时找老师考大样例 不要对着不对的大样例虚空调试 2.在考场上要自己造大样例 要造极限数据 这样可以防止数组越界 3.在数据不超过5e6的情况下 单log都是可以过的 只要极限数据跑的不是很慢就不用担心常数问题 4.在考场上要留一个小时以上…...

哇哇哇下雨了!——2025 . 9 . 16

哇哇哇下雨了! 感觉我从小就不喜欢晴天,反而钟爱雨天,其实每次下雨我心里就在想“哇哇哇又下雨了”。 可能跟打小的性格有关,也可能跟那个人有关。 当时我写了好多关于雨的小诗,无论是给她的还是给我自己的,内容也想不起来几句了。那会儿虽然每天的生活是无味的严苛的,但…...

奇思妙想(胡思乱想)

前言: 作为一个想象力 丰富 夸张的人,总有一些奇思怪想,浅浅记录一下呀~~ 可能会很奇怪以及不符合实际,毕竟是想象的【逃】 正文:圈养的猪会不会觉得人类的是自己的奴隶(因为一直好吃好喝的供着它们) 睡觉会不会就是脑电波以第一视角或第三视角的方式观察到平行宇宙的自…...

AI Compass前沿速览:GPT-5-Codex 、宇树科技世界模型、InfiniteTalk美团数字人、ROMA多智能体框架、混元3D 3.0

AI Compass前沿速览:GPT-5-Codex 、宇树科技世界模型、InfiniteTalk美团数字人、ROMA多智能体框架、混元3D 3.0AI Compass前沿速览:GPT-5-Codex 、宇树科技世界模型、InfiniteTalk美团数字人、ROMA多智能体框架、混元3D 3.0 AI-Compass 致力于构建最全面、最实用、最前沿的AI…...

C++中set与map的自定义排序方法详解

在C++标准模板库(STL)中,set和map是两种常用的关联容器,它们默认按照键的升序进行排序。但在实际开发中,我们经常需要根据特定需求对元素进行自定义排序。本文将详细介绍如何为set和map实现自定义排序。 默认排序行为 在深入了解自定义排序之前,我们先看一下set和map的默认…...

id

卷姬神经瓦特 2025.09.16本文来自博客园,作者:transformert,转载请注明原文链接:https://www.cnblogs.com/ac-network/p/19095883...

【汇总】Qt常用模块头文件

一、变量、命令、参数排序 项目.pro文件 模块导入 include 文件 中文说明 备注、示例ABCDEFGHIJKLM#include <QMessageBox> 信息提示窗口QMessageBox::about(this, "关于",“关于说明”);NOPQRSQT += serialport #include <QSerialPort> 串口控制类#inc…...

Advanced Algorithm —— Hashing and Sketching

Birthday Problem \(m\) 个人,\(n\) 天,没有两个人生日相同的概率为: \[\displaystyle{ \begin{align*} \Pr[\mathcal{E}]=\left(1-\frac{1}{n}\right)\cdot \left(1-\frac{2}{n}\right)\cdots \left(1-\frac{m-1}{n}\right) &= \prod_{k=1}^{m-1}\left(1-\frac{k}{n}\r…...

CF2136 Codeforces Round 1046 (Div. 2) 补题

题目标签B笛卡尔树的应用C有思维难度的 dp / 递推D交互题 利用曼哈顿距离反过来解坐标:二元线性方程组 考虑“问最值/极限情况”E二分图,边双连通分量 两条路径 -> 环 异或运算的性质 (见题解)题解:E. By the Assignment观察1:对于本题,每个边双连通分量内部的点权可…...

【IEEE出版、EI检索稳定】第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)

第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025) 2025 4th International Conference on Cloud Computing, Big Data Application and Software Engineering 在这里看会议官网详情 2025年10月24-26日丨中国-成都(线上同步举办) 截稿日期:看官网 检索类型:IE…...

缺省源

自用,你不见得会用。 快读:点击查看代码 #define getc() getchar_unlocked() #define putc(a) putchar_unlocked(a) #define en_ putc(\n) #define e_ putc( )template<class T> inline T in() { T n = 0; char p = getc();while (p < -) p = getc();bool f = p == …...

97. 交错字符串

题目链接:97. 交错字符串 - 力扣(LeetCode)‘解析:二维dp dp[i][j]代表s1前i个和s2前j个是否能组成s3的i+j个 状态转移方程就很简单了, 但这一题要求空间限制,可以观察到dp其实只记录一维就可以,因为用到了i-1或者j-1class Solution { public:bool isInterleave(string …...

MODint(自动取模)

主要来自here,我就只是补充了点东西,修改了一点东西,改了点 re 判断。 建议和我的快读一同使用,兼容的。 in,out兼容,不过建议in(a.val),快一些。同理,建议out(a.val) 不行的话也有流输入输出的兼容。 除法是 \(O(\log mod)\) 的,嫌慢可以自行修改 inv() 函数内容。 t…...

BFD实验

动态bfd+OSPF: bfd q ospf 1 bfd all-interfaces enable net .... net .......

2025.9.16——卷1阅读程序1、2

阅读程序2 vector容量与大小 容量表示在不申请内存的情况下vector还可以添加多少元素,通常超过限制之后容量会增加>=1,具体看算法实现 大小表示vector中有多少元素 .assign(n,val) 将vector的内容替换为n个val值的元素...

25/9/15(补)

来的比较晚,把ABC题改了,随机跳了一道贪心+数学题,学习了一下题解思路。然后做了下2020csps单选,错了2道。不知道今年没有小学生s分数线会不会巨高,后面几天就练练第一轮。...

[Paper Reading] DINOv3

目录DINOv3TL;DRMethodDataArchitectureLearning ObjectiveGram Anchoring ObjectiveLeveraging Higher-Resolution Featurespost-hoc strategiesExperiment相关链接 DINOv3 link 时间:25.08 单位:Meta 相关领域:Self Supervised Learning 作者相关工作: 被引次数:7 项目主…...

25/9/16

作业比较多,来的时候就剩25分钟了,于是补了一下博客,复习了一下之前写的题。然后又研究了一下昨天的P11205(贪心+数学),稍微参悟到了一些。...

JavaDay5

增强for循环 Java增强for循环语法格式如下: for(声明语句:表达式) {//代码句子 }声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在环语句块,其值与此时数组元素的值相等。 表达式:表达式是要访问的数组名,或者是返回值为数组的方法 packag…...

揭秘Mobile Me数据挖掘:从WebDAV探测到隐藏文件发现

本文详细分析了Mobile Me服务的公开文件访问机制,通过WebDAV协议和XML解析技术实现目录遍历,发现用户代理字符串影响隐藏文件显示,并开发了自动化探测工具Me Finder进行数据收集。我最近发布了Bucket Finder脚本,Darren在Hak5节目中进行了专题报道。有反馈指出Mobile Me采用…...

25/9/14(补)

下午: 随机跳题做了p2926 就是一个每个数字为a[i]的环,对于每个a[i]统计a[i]是aj的因数的a[j]个数。 做法:首先是否是环对答案无影响,因为每个数都要走一遍,所以开一个桶b,记录每个数字的出现次数,外层1-1000000枚举i,判断b[i]是否有值,如果有内层1-1000000/i枚举判断b…...

【IEEE出版、往届会后4个月EI检索】第二届计算机视觉、图像处理与计算摄影国际学术会议(CVIP 2025)

第二届计算机视觉、图像处理与计算摄影国际学术会议(CVIP 2025) 2025 2nd International Conference on Computer Vision, Image Processing and Computational Photography *IEEE出版 | 往届会后4个月EI检索,非常稳定!收录范围广 重要信息 在这里看会议官网详情 时间地点:…...

VSCode + Python 开发踩坑:虚拟环境不在项目根目录导致包无法识别该怎么办

最近在学习Dify ,尝试自己使用源码启动项目并进行二次开发。 我按照Dify的官方文档说明使用uv在项目的api目录下安装了Python虚拟环境,但是在VSCode右下角的Python解释器选择中却无法像conda管理的虚拟环境一样直接找到并选中,需要手动选择解释器存在,而且我在手动设置之后…...

洛谷 P10936 导弹防御塔 题解

题目描述请移步 https://www.luogu.com.cn/problem/P10936题目简述有n个防御塔,每个防御塔都有充足的导弹 导弹需要一定时间发出,又需要一定时间冷却 导弹有确定的速度,发出后会沿最短路径攻击任意一个入侵者 有m个入侵者,给定防御塔和入侵者的坐标,求至少多久才能击退所有…...

Python爬虫实战:研究Pandas,构建地理信息资料采集和分析便捷的系统

Python爬虫实战:研究Pandas,构建地理信息资料采集和分析便捷的系统pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier Ne…...

初赛复习

重要知识点 存储单位卡特兰数 以下是一些卡特兰数 \(C_n\) 的应用:二叉树计数\(n\) 个结点的不同形态的二叉树的数量是卡特兰数 \(C_n\)。括号匹配\(n\) 对括号的有效组合数。栈操作序列(出栈顺序)\(n\) 个元素的出栈顺序数。凸多边形的三角划分\(n + 2\) 条边的凸多边形划分…...

用户帐户控制(UAC)

您拥有标准用户的用户名和密码。可在 中查看lusrmgr.msc 。...

fg/bg/jobs/kill命令--linux

[转载](https://www.cnblogs.com/machangwei-8/p/10391440.html) 目录一、命令详解二、进程的终止三、进程的挂起(暂停) 基础命令学习目录首页原文链接:http://www.cnblogs.com/chjbbs/p/6307333.html linux提供的fg和bg命令,可以让我们轻松调度正在运行的任务假如你发现…...

【OC】单例模式 - 教程

【OC】单例模式 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", monospace !important; font-size: 1…...