Git 学习笔记(三) - 分支管理
回到文章目录
建站提交历史文章,原文写作时间 2023 年 1 月 11 日前后。
基本操作
12345678git switch {branch} # 切换分支git switch -c {branch} # 新建并切换分支git branch # 打印分支列表git branch {branch} # 新建分支git branch -d {branch} # 删除分支git branch -D {branch} # 强力删除分支 (如果分支未合并需强力删除)git branch -M {newName} # 重命名当前分支git merge {branch} # 快速合并到当前分支 (重点)
删除分支将删除关于分支的所有信息,包含 reflog ,这意味着 -D 强力删除后将无法访问分支 ...
Git 学习笔记(二) - 基础操作
回到文章目录
建站提交历史文章,原文写作时间 2023 年 1 月 11 日前后。
Get Start
开始之前创建一个文件夹,这里以 user/jamhus_tao/test 为例。
12345cd user/jamhus_tao/test # 切换至仓库目录: test, 请为每个仓库创建一个单独的文件夹git init # 初始化仓库 (.git)git status # 查看差异状态,为确保工作安全,请牢记git add readme.md # 向暂存区推入 readme.txtgit commit -m "This is my first commit" # 向版本库推入暂存区, -m 添加注释, 强制添加注释
后文会大量提到分支的概念,这个在另一篇文章中提到,默认分支为 master。
比较
12345678git status # 查找工作区对版本库的文件层差异git status {file ...
Git 学习笔记(一) - 安装配置
回到文章目录
建站提交历史文章,原文写作时间 2023 年 1 月 11 日前后。
安装
到 Git 官网 下载工具,可以选择 Setup 版本(安装版)或 Portable 版本(绿色版),安装目录最好没有中文。
配置
下载的 Git 目录应该是这样的:
其中,git-bash 是可以直接运行使用的。bin 目录下的 git 可以是命令行脚本,配置到全局变量后直接使用。
在命令行测试运行 git --version 检查安装。
然后,第一次运行 git 需要配置一些信息。
123git config --global core.quotepath false # 关闭强制 ASCII 路径名git config --global user.email "jamhus_tao@qq.com" # 配置用户邮箱git config --global user.name "jamhus-tao" # 配置用户名
配置信息
下面再简单介绍 git config 的简单使用方法,在进行一些配置时使用 ...
Git 学习笔记(零) - 前言
前言
Git 是目前主流的代码管理工具,可以轻松实现代码版本回溯,代码分支管理等等。同时,Git 几乎成为使用 Github、Gitee 的必备工具。本文将分享简单的 Git 学习笔记,笔记不是很详细,需要有较多类似工具使用经验。
关于 Git 学习,Git教程 - 廖雪峰的官方网站 是很好的入门指南,我也是跟着这篇博客学习的。
前置知识
Git 作为命令行工具,你至少会用 命令行 吧。
目录
如果要快速入门使用 Github,在第六篇文章。
Git 学习笔记(一) - 安装配置
Git 学习笔记(二) - 基础操作
Git 学习笔记(三) - 分支管理
Git 学习笔记(四) - 标签管理
Git 学习笔记(五) - 储存库
Git 学习笔记(六) - 远程仓库
Git 学习笔记(七) - SSH 连接与 GPG 认证
ZSTU3192 仲夏之夜 (Summer) - 最小生成树问题解析
建站提交历史文章,原文写作时间 2022 年 11 月 12 日。
前往 算竞题解 分类 || 前往 算竞模板 分类
放在前面
还是那句话,因为找不到此题相关的题解,所以凉皮写了这篇文章。作为算法初学者,这道题卡了凉皮很久,现在凉皮AC了这道题,所以兴奋的地和大家分享这篇文章。本文如果有些术语使用不当或者其他错误欢迎在评论区回复。
题目描述
“一闪一闪亮晶晶,满天都是小星星”,夏天的夜晚,满天繁星。Pty和xx躺在软绵绵的草坪上,仰望这美丽的星空,让人引起无限的遐想!(富有意境的废话)
Pty开始展开他的想象力:在这片绚丽的星空图上,有n颗星星,从1到n进行编号。现在有n-1条双向星际航道把这n颗星星给连接了起来。每条星际航道都有一个为过路费(正整数),设这n-1条航道的过路费之和是V。Pty给每两个星星之间都连一条星际航道,并且赋予了它们相应的过路费,要求在连完之后:
对于任意一种能把n颗星星连接起来的m条航道(这m条航道与原始航道不完全相同),满足这m条航道的过路费之和>V。
请你告诉Pty:能满足他条件的方案里:图中所有的星际航道过路费之和最小是多少?
Pty将告诉你 ...
python 变量命名规则与规范(约定)
建站提交历史文章,原文写作时间 2022 年 7 月 16 日。
引子
前些日子,大大的一位友友问了我一个问题,表示了对命名规范的不解。确实如此关于命名规范有一套相对严谨而复杂的理论,大大在此特就python的变量(以及函数和对象)命名规则与规范进行讲述。
规则
规则很简单,我在此也就写在前面,并且一笔带过,相信在看的朋友也不会有疑问。
python变量必须由数字、字母、下划线(0-9a-zA-Z_)组成,严格区分大小写。
规范
性质与意义
在此为了分清规则与规范的区别,特别需要指出规则的性质。规则简洁明了,命名正确与否由编译器检查,也就是说,如果命名不符合规则,代码是跑不起来的。规则则不同,我将它概括为“程序员的自我规范”,它属于一种自我意识或者说自觉,不符合规范的程序运行起来依然没有任何问题。
那么我们就需要提到命名规范的意义了。命名规范有两方面的意义:一、使变量意义一目了然;二、表面变量的用途。这些会在后面提到;三、程序员之间的交流,良好的代码习惯有利于团队合作。
声明
命名规范实际并不统一,有时也不必过度纠结规范,保留其本质的用途即可,在一些细节上存在偏差,如果作者有什么遗漏 ...
python 参数传递,如何让可变参数当作不可变参数传递
建站提交历史文章,原文写作时间 2022 年 1 月 30 日。
引子
众所周知,python中参数传递方式有很多,这些在其他文章中都有所详细陈述,在此不做赘述。(如果你需要了解python参数传递的基本知识,请绕路,相关文章在CSDN很丰富。)但是小编遇到一个问题便是可变参数的传递无法被当作不可变参数处理(python3.8),而我们常常需要这么做。这个问题的解决方案在全站没有找到解决方案,小编特写此文为有需要的人士介绍。
错误示例
123456789101112131415def demo(x): _x = x _x['python'] = 'v3.8' print('_x =', _x)x = {'visual basic': 'v6.0'} # 字典是可变参数demo(x)print('x =', x)"""输出结果:_x = {'visual basic': ...
pynput 键盘鼠标事件抑制(拦截输出)
建站提交历史文章,原文写作时间 2021 年 8 月 15 日。
pynput 键盘鼠标事件抑制
前言
最近想用pynput做一个键盘映射,但是遇到的了一些问题,键盘映射有时需要抑制原输出。本人在CSDN找了很久,但是发现没有相关的文章。在查找了官方文档,并做了一些测试后,想写一篇文章来扩充一下。
在这里我提供了两种方案,各有优劣。相比较而言,方法二方便、稳定(推荐 );方法一更加灵活,在特殊场合适用。
方案一
pynput的官方文档中有简单提到,Listener类的参数中有一项suppress(抑制)。
“suppress(逻辑型) - 是否抑制事件,将此参数设置成True,就可以阻止事件传递到你的操作系统。”
也就是说,pynput提供的抑制必须在启动监听的时候设置,这里我们以键盘事件为例,因为往往它是我们要拦截的对象,当然鼠标事件的抑制用法也是完全相同的。
12345678910111213from pynput import keyboarddef on_press(key): passdef on_release(key): passwith keyboard ...
竞赛图与哈密顿图 - Cheeeeen the Cute Cat - 牛客多校Day5
Cheeeeen the Cute Cat
前往 算竞题解 分类 || 前往 算竞模板 分类
原题链接
C-Cheeeeen the Cute Cat 2023牛客暑期多校训练营5
简明题意
给定一个二分图的 010101 邻接矩阵,表示一个二分图,如矩阵中 ai,ja_{i,j}ai,j 为 111 表示二分图存在一条无向边 (i,n+j)(i,n+j)(i,n+j)。题目保证二分图共有 2n2n2n 个点,n(n−1)2\frac{n(n-1)}{2}2n(n−1) 条边,不存在边 (i,n+i)(i,n+i)(i,n+i),不同时存在边 (i,n+j)(i,n+j)(i,n+j) 和 (j,n+i)(j,n+i)(j,n+i)。现求二分图最大匹配,n≤3000n \le 3000n≤3000。
解题思路
本题需要分为两步,因为题目隐藏了其模型。
转化模型
这是一幅稠密图,如果直接跑二分图匹配时间复杂度是 O(n3)O(n^3)O(n3) (匈牙利算法) 或 O(n2.5)O(n^{2.5})O(n2.5) (dinic 算法),实际题目模型与二分图没有关系。
我们可以将二分 ...
构造 - Merge the squares! - 牛客多校Day4
Merge the squares!
前往 算竞题解 分类 || 前往 算竞模板 分类
原题链接
H-Merge the squares! 2023牛客暑期多校训练营4
简明题意
给定一个 n×nn\times nn×n 的网格,初始状态每个网格就是一个正方形。之后进行不限次正方形合并操作,使得最后将所有网格合成为一个大正方形。要求每次框定一个正方形区域,要求正方形区域内都是完整的正方形,不能有正方形一半在区域内,一半在区域外,合并后该区域变成一个正方形。每次合并至少合并 222 个正方形,至多合并 505050 个正方形。
其中 n≤1000n \le 1000n≤1000 。首先输出 mmm 表示你将进行多少次操作,之后 mmm 行每行三个数字 (x,y,k)(x,y,k)(x,y,k) 表示框定以 (x,y)(x,y)(x,y) 为起点的大小为 kkk 的正方形。
解题思路
每次合并必须为一个正方形区域且所有子形状都必须是正方形,这明确了我们要解决的问题是:将任意大小的正方形( n≤1000n \le 1000n≤1000 )分割成不超过 505050 个正方形。这题最难的实际 ...