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

相关文章

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

ModelMapper基本使用和常见场景示例详解

《ModelMapper基本使用和常见场景示例详解》ModelMapper是Java对象映射库,支持自动映射、自定义规则、集合转换及高级配置(如匹配策略、转换器),可集成SpringBoot,减少样板... 目录1. 添加依赖2. 基本用法示例:简单对象映射3. 自定义映射规则4. 集合映射5. 高级配置匹