VS Code 的git工具

本文对比了VSCode与Sublime的使用体验,并重点介绍了VSCode自带的Git工具如何简化日常的Git操作流程,包括初始化、添加更改、提交及推送代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


VSCode

VSCode 跟Sublime一样属于轻便型代码编译器,可以安装一些插件来扩展它的功能,不像一些集成的大型IDE安装好就具有很多很强大的集成开发功能,初学者用不到的大部分功能模块,就显得很冗余,而轻便型编辑器给人感觉比较随心所欲,需要什么功能安什么插件。两种不同的风格,根据不同的需求来选择吧。

在Sublime中用git需要安装git插件,而VSCode就自带git工具,这估计是我认为VSCode比Sublime好用的原因之一。

VSCode的git工具

虽然git本身用命令行就很简单,每次git的时候敲几行命令也不需多少时间,但有更快捷的方式为什么不用呢。毕竟两三下click事件是要比十几下keydown,keyup事件来得快,更不用说对于我这种稍微修改一下小地方就想push的强迫症患者了。但对于刚接触git的初学者来说,还是用命令行多熟悉下git命令为好。

下面就讲讲哪些click操作代替了哪些命令行操作吧

把项目文件夹直接拖到窗口里面,就打开了这个项目,点开git,它会提示进行初始化,也就相当于git init命令,会在项文件夹里生成.git文件夹。git工具在判定一个项目需不需要初始化git时,也是看该项目下是否有.git文件夹,若打开项目时已有初始过的.git文件夹,就不需要初始化了。

初始化git仓库,相当于git init命令

但在一般的开发团队里面,一般是用不到初始化的,因为在git clone的时候,项目文件里就自带.git文件夹

git clone
git clone的项目文件里自带.git文件夹

当然也可以从VSCode中打开终端(快捷键Ctrl+~ 或者点击git工具页面右上角···选择‘显示GIT输出’)进行git clone操作

显示GIT输出打开控制台点击终端,进入命令行
VS Code中的终端

此处先省略git remote等操作,下面讲把代码成功拉到本地后的操作

当更改几个文件后,在git页面会显示你更改的文件

修改过的内容

文件前面带的标识:D表示删除文件,U表示新增文件,M表示修改过的文件,点击可查看修改内容

比较修改内容

选择需要add的文件,点击文件右边的加号可以将文件放进暂存的更改中,相当于git add,点击左边的回撤可以撤销此次更改。

暂存更改,相当于git add

add完后在上方消息框中,可以输入此次commit的消息,然后Ctrl+Enter就可以git commit了

add

也可以不暂存,直接commit,VSCode默认把所有的修改内容add了,相当于“git add .”。

直接commit,默认add所有修改

可以点击git菜单,撤销上次提交,这撤销的是上一次commit的内容,还可以全部清理,取消所有修改的内容

撤销上次提交

处理好所有的commit后,就可以push了

git push

拉代码,就直接点pull就行了,跟pull(Rebase)的区别是默认的pull相当于git pull --merge ,pull(Rebase)相当于git pull --rebase,一个是合并,一个是覆盖。

Pull and Pull(Rebase)


转载自https://www.jianshu.com/p/0e9f44387495  自己记性不好当总结资料查询资料收藏

洛谷P1928 外星密码是一道经典的字符串处理题,题目大致描述是这样的:给定一段由外星人发出的信号序列(即一串字母组成的字符串),需要从中找出最长的一个连续子串满足某些特定条件——比如每个字母出现次数均为偶数次或者其他指定规则下的统计特性。 以下是用C语言解决这个问题的基本思路及步骤: ### 解决方案概述 #### 第一步:输入数据 首先读入代表“外星密码”的整个字符串。通常我们会限制这个字符串长度不超过一定值(如题目设定的最大限制)。例如可以用下面的方法来进行存储: ```c char str[MAX_LEN]; // MAX_LEN 应设置得足够大以容纳最大可能的输入大小+1 (用于'\0') scanf("%s", str); // 直接利用scanf读取完整的单词型字符串 ``` #### 第二步:遍历寻找符合条件子串 我们采用双层循环的方式依次检查每一个可能的起始位置i以及结束位置j所形成的子串是否符合要求。对于每次选定的[i,j]区间内的部分,都需要计数其中各个字符的数量,并验证这些数字是否全部为偶数或其他预设的标准。 ```c for(int i = 0; i < strlen(str); ++i){ int count[ALPHA_SIZE]={0}; // ALPHA_SIZE一般设成26适应小写字母表情况 for(int j=i ; j<strlen(str) && valid<=bestValid; j++){ updateCount(count,str[j]); if(checkCondition(count)){ recordBestResult(i,j,...); } } } ``` 这里的伪代码展示了两重嵌套迭代框架结构,内侧随着索引推进不断调整局部频率直方图(`count`)同时测试目标属性达成状况;一旦发现更优结果则保存下来直到最终确定全局最佳解法为止。 #### 实现细节补充说明 - `updateCount`: 增量更新当前考虑范围内某个字符对应的频度计量项数值; - `checkCondition`: 根据实际问题需求定义判断依据函数检验目前收集到的信息集合能否构成合格候选答案; - `recordBestResult`: 当前找到新的较理想匹配区域时记录相关信息供后续比较参考之需。 完整版解决方案可以根据具体约束进一步优化时间复杂度或空间利用率等方面的表现特征。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值