本文主要是介绍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使用小技巧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!