webstorm的git使用小技巧

1、怎么使用stash

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

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

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

 webstorm的git使用小技巧_第1张图片

webstorm的git使用小技巧_第2张图片

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

webstorm的git使用小技巧_第3张图片

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

webstorm的git使用小技巧_第4张图片

webstorm的git使用小技巧_第5张图片

webstorm的git使用小技巧_第6张图片

2、Cherry-Pick和squash怎么用

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

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

squash:提交合并

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

2.1、切换到master分支

webstorm的git使用小技巧_第7张图片

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

webstorm的git使用小技巧_第8张图片

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

webstorm的git使用小技巧_第9张图片

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

webstorm的git使用小技巧_第10张图片

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

webstorm的git使用小技巧_第11张图片

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

webstorm的git使用小技巧_第12张图片

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

webstorm的git使用小技巧_第13张图片

webstorm的git使用小技巧_第14张图片

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

webstorm的git使用小技巧_第15张图片

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

webstorm的git使用小技巧_第16张图片

2.11、最后删分支temp

webstorm的git使用小技巧_第17张图片

总结:创建临时分支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:

webstorm的git使用小技巧_第18张图片

 远端查看:webstorm的git使用小技巧_第19张图片

 webstorm的git使用小技巧_第20张图片

关于tag以及和branch的不同

webstorm的git使用小技巧_第21张图片 文章链接:Git-命令行-使用 Tag 标记你的代码

你可能感兴趣的:(git,项目管理,github)