GitGraph 插件使用

插件安装

VS Code 插件商店搜索 mhutchie.git-graph,安装

mhutchie.git-graph

https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph​marketplace.visualstudio.com/items?itemName=mhutchie.git-graph

打开 GitGraph

  1. 方法一:VS Code 左侧源代码管理-GitGraph图标
  2. 方法二:VS Code 下面GitGraph选项

方法一可以支持选择不同的仓库

配置 GitGraph

1. 配置 UserDetals

主要是用来展示代码贡献者

2. 配置远端仓库

Fetch URL: 是指拉取代码的链接
Push URL: 是指推送代码的链接(不配置的话默认跟Fetch URL相同)
一般来说,我们把被派生的仓库(主仓库)称为upstream,派生的仓库(自己的仓库)称为origin
又:主仓库(upstream)大概率是没有推送权限的,这时候我们可以手动配置Push URL为空( - ),防止误推送

创建一个新分支

1. 在原有分支的基础上,创建新分支

选择"Create new branch from..."(在原有分支的基础上新建分支)

2. 选择我们希望从哪个分支上创建新分支

一般会是主仓库(upstream)的最新(main)分支

3. 输入新的分支名

4. 回车之后稍等几秒即可看到我们创建的新分支了

如果不出现可以手动点击右上角的刷新按钮

远端分支与本地分支

顾名思义,远端分支储存在远程仓库中,本地分支存储在本地硬盘中
显示格式:
本地分支:仅显示分支名(因为它只存在本地,不存在远端)
远端分支:远端仓库名/分支名(因为即使是不同的远端仓库,也可能拥有名字相同的分支)
本地分支+远端分支:分支名|远端仓库名(代表本地与远端都有一个叫xx的分支)

拉取(Fetch) & 刷新(Fresh)

  • 当远端仓库更新的时候,并不会告知本地,这时候我们需要手动拉取Fetch一下
  • 但是即使是拉取了之后,界面也不会更新,所以我们仍然得手动刷新Fresh一下

所以一般刷新得把两个按钮都按按

切换(CheckOut)

当我们想更换分支进行开发的时候,右键对应的气泡,选择Checkout即可切换到对应分支

注意带有加粗字体的气泡则为目前所在的分支

拉取(Pull)

当我们需要拉取并合并某个分支最新的改动的时候,右键对应的气泡选择Pull into current branch

版本回退

当我们需要回退到某个指定commit的时候,右键对应的commit选择Reset current branch to this commit

Hard 为取消所有修改并回退

创建任意的分支

选择对应的commit右键Create Branch即可

删除分支

选择对应的气泡右键Delete Branch即可

前提:不在正在使用的分支上

Read more

贪心算法(局部最优实现全局最优)第一篇

贪心算法(局部最优实现全局最优)第一篇

目录 1. 什么是贪心算法 2. 贪心算法的解题步骤 3. 具体例题及代码 3.1 LeetCode860. 柠檬水找零 3.2 LeetCode2208. 将数组和减半的最少操作次数 3.3 LeetCode179. 最大数 从这篇文章开始,我们开始讲解贪心算法。 1. 什么是贪心算法 贪心算法是算法设计中的经典思想,核心逻辑用一句话就能概括 ——每一步都做出当前情况下的最优选择,不回头、不纠结,最终期望得到全局最优解。它不像动态规划那样依赖中间状态存储,也不用回溯尝试所有可能,凭借 “直来直往” 的思路,成为解决特定问题的高效方案。 2. 贪心算法的解题步骤 1. 问题拆解:将复杂问题拆分成多个连续的局部决策步骤。 2. 确定贪心策略:明确每一步的 “最优标准”(比如 “选最小”“选最大”“选最早结束”)。 3. 验证可行性:

By Ne0inhk
【线性表系列终篇】链表试炼:LeetCode Hot 100 经典题目实战解析

【线性表系列终篇】链表试炼:LeetCode Hot 100 经典题目实战解析

🏠个人主页:黎雁 🎬作者简介:C/C++/JAVA后端开发学习者 ❄️个人专栏:C语言、数据结构(C语言)、EasyX、游戏、规划、程序人生 ✨ 从来绝巘须孤往,万里同尘即玉京 文章目录 * 【线性表系列终篇】链表试炼:LeetCode Hot 100 经典题目实战解析 * 文章摘要 * 一、试炼前的准备:链表解题核心技巧回顾 * 二、试炼开始:经典题目实战解析 * 题目一:反转链表 (LeetCode 206) * 解法一:迭代(双指针) * 解法二:递归 * 题目二:环形链表 (LeetCode 141) * 解法:快慢指针(Floyd判圈算法) * 题目三:合并两个有序链表 (LeetCode 21)

By Ne0inhk
手撕力扣138题:优雅复制带随机指针的链表,三步搞定经典算法题

手撕力扣138题:优雅复制带随机指针的链表,三步搞定经典算法题

手撕力扣138题✨:优雅复制带随机指针的链表,三步搞定经典算法题 * 一、题目核心剖析🔍 * 题目要求 * 解题难点 * 节点结构定义(C++) * 二、核心解题思路💡:三步法原地复制 * 步骤1:原地插入复制节点,打造“原节点-复制节点”成对链表 * 图形演示 * 核心代码片段 * 步骤2:修正复制节点的random指针,指向正确的复制节点 * 图形演示 * 核心代码片段 * 步骤3:拆分原链表与复制链表,得到最终的深拷贝链表 * 图形演示 * 核心代码片段 * 三、完整C++代码实现📝 * 四、算法性能分析📊 * 时间复杂度 * 空间复杂度 * 对比哈希表法 * 五、解题总结与拓展📚 * 解题核心要点 * 算法拓展 在链表的算法考察中,带随机指针的链表复制绝对是高频考点,力扣138题虽被标注为中等难度,但实则是锻炼链表操作思维的经典简单题。普通链表的复制仅需遍历处理next指针即可,而带random随机指针的链表,因random可

By Ne0inhk
【优选算法 | 位运算】位运算基础:深入理解二进制操作

【优选算法 | 位运算】位运算基础:深入理解二进制操作

算法相关知识点可以通过点击以下链接进行学习一起加油!双指针滑动窗口二分查找前缀和 在本篇文章中,我们将全面解析位运算的基本原理与实际应用。位运算通过直接操作数字的二进制表示,能够在许多计算中提供极大的效率提升。无论是用于加速数学运算、优化算法,还是解决特定的技术问题,位运算都扮演着至关重要的角色。 🌈个人主页:是店小二呀 🌈C/C++专栏:C语言\ C++ 🌈初/高阶数据结构专栏: 初阶数据结构\ 高阶数据结构 🌈Linux专栏: Linux 🌈算法专栏:算法 🌈Mysql专栏:Mysql 🌈你可知:无人扶我青云志 我自踏雪至山巅 文章目录 * 一、常见位运算总结 * 二、入门题目 * 面试题 01.01. 判定字符是否唯一 * 268.丢失的数字 * 371.两整数之和 * 137.只出现一次的数字 II * 面试题 17.19. 消失的两个数字

By Ne0inhk