webstorm的git使用小技巧

2024-05-04 15:48
文章标签 使用 技巧 git webstorm

本文主要是介绍webstorm的git使用小技巧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、怎么使用stash

开发过程中,我们可能会面临时这种情况:正在A分支上进行功能的开发迭代,这时,同事向你反馈说B分支上有个bug需要紧急修改,如果这个时候你的代码没有暂存或提交至本地仓库,git是不允许切换的,因为未提交文件可能与目标分支文件存在冲突。要想能够顺利切换分支,有两种方法:

1、将A分支上的修改提交至本地仓库,但不提交至远程,等从B分支切回A分支的时候,在进行提交回退,即:git reset HEAD~1,这样A分支上就不存在临时的提交记录

2、利用git stash将A分支上的修改提交至暂存区(git分为工作区、暂存区、本地仓库、远程仓库四个区域),这里着重说下webstorm下如何使用stash功能,过程如下图:

 

这时工作区已经没有被修改的文件了 

当我们在B分支上修改完成,切换到A分支,该如何调取先前的那些被改动过的文件

2、Cherry-Pick和squash怎么用

通常我们开发一个功能可能会有多次commit记录,如果使用简单的merge合并操作,则会把这些commit记录也全部合并到目标分支。如果你不想在合并分支时体现你多次commit记录的话,就需要进行Cherry-Pick和squash

Cherry-Pick:选择指定的提交记录

squash:提交合并

推荐一篇不错的文章:merge squash 和 merge rebase 区别

2.1、切换到master分支

2.2、从master新建一个新分支,命名为temp(最后会提到)

2.3、选择dev分支的提交记录

2.5、选中要合并的提交记录,右击Cherry-Pick,如果有合并冲突,则解决冲突

2.6、操作完成后,提交记录切换至temp分支,可以看到这两次提交记录已经存在了,说明已经合并成功

2.7、接着我们将本地分支切换到master分支,这一步的作用是让master分支与temp进行合并

2.8、合并,点击Modify options下拉选择合并参数 -- squash(多次提交记录合并成一次提交记录)--no-commit(合并完成后由自己填写commit记录),点击merge

2.9、可以看到合并提交的对应的变更文件都已经出现在工作区了,接下来就是按照常规的commit、pull、push过程执行即可以了

2.10、可以看到master分支上的提交记录只有一次

2.11、最后删分支temp

总结:创建临时分支temp的作用起了中间交换的角色,因为Cherry-Pick会直接将提交记录合并到目标分支,所以将要合并提交全部合并到临时分支temp上,再通过squash将临时分支temp的多次提交记录合并,就可以达到只有一次的记录

 3、tag的使用

这里主要说下tag的作用以及遇到的问题。

作用:用于标记一个版本的完整代码。标签应该打在当前分支的最后一次提交上,否则体现在标签上的提交记录是不完整的,打在最后一次提交,该标签会自动将这次提交之前的所有提交记录囊括到这个标签中,但不会囊括之后的提交记录。那么,就有一个问题来了,如果我标记完,但又有新的提交要在当前分支怎么办?

如果标签没有提交到远程,那只需要删除本地的标签,再重新在最后一次提交上打上标签即可。

如果标签已经推送到了远程,需要先删除远程的标签,否则会提交失败!删除命令如下:

git push origin :ref/tags/xxx(标签名称)

参考文章:Git push 报错-Failed with error: dst refspec xxx matches more than one

 webstorm中推送时需要注意勾选push tags:

 远端查看:

 

关于tag以及和branch的不同

 文章链接:Git-命令行-使用 Tag 标记你的代码

这篇关于webstorm的git使用小技巧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959554

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格

redis中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

Java Stream流使用案例深入详解

《JavaStream流使用案例深入详解》:本文主要介绍JavaStream流使用案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录前言1. Lambda1.1 语法1.2 没参数只有一条语句或者多条语句1.3 一个参数只有一条语句或者多

Java Spring 中 @PostConstruct 注解使用原理及常见场景

《JavaSpring中@PostConstruct注解使用原理及常见场景》在JavaSpring中,@PostConstruct注解是一个非常实用的功能,它允许开发者在Spring容器完全初... 目录一、@PostConstruct 注解概述二、@PostConstruct 注解的基本使用2.1 基本代

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

快速修复一个Panic的Linux内核的技巧

《快速修复一个Panic的Linux内核的技巧》Linux系统中运行了不当的mkinitcpio操作导致内核文件不能正常工作,重启的时候,内核启动中止于Panic状态,该怎么解决这个问题呢?下面我们就... 感谢China编程(www.chinasem.cn)网友 鸢一雨音 的投稿写这篇文章是有原因的。为了配置完