使用webstorm中的git
右键菜单
先来最熟知的右键操作,分为两类:文件夹(或者工程)右键和文件右键,先看看文件夹右键的效果——
再看看文件右键——
会发现两者的差异仅仅在于文件右键的视图多了一些diff操作(或者可以联想到git diff命令)。我们看看各个选项的含义——
Commit File...提交至本地版本库
Add添加进缓存区
Show Current Revision显示当前文件的最新版本信息,如下图——
Compare with the Same Repository Version与当前版本(的文件)做比较,可以理解为与最新版本比较,也就是可以比较本地工作区和本地版本库的差异(也记住,比较视图中,右侧永远是最新的那个版本内容)——
Compare with Latest Repository Version与上一版本(的文件)做比较,可以理解为当前版本与本地工作区所做的更改共同来与上一版本比较
Compare with...与任意历史版本(的文件)做比较
Compare with Branch...与任意分支(的文件)做比较,包括本地分支及远程分支
Show History展示关联本文件(或者文件夹中的所有文件)提交信息历史,我们可以看到,历史提交信息面板出现于下方Version Control面板中——
Show History for Selection对指定的代码块,显示历史版本信息
(连接第二个图)-------->>>>>>
Revert...还原代码,要注意与reset的区分,这里仅仅是将本地工作区的代码还原为本地仓库中的最新版本的代码
Repository> 仓库二级导航选项,即相关仓库类的操作
要注意,有些操作是针对某单个文件操作的,每当操作某个文件夹时(或者某个工程时),会以选中的文件的集合为单位展开操作文件,并进行操作。
我们继续看看Respository的二级导航——
Branches显示左右分支,包括本地分支和远程分支
进而对各个分支能够进行更多的操作,如下图所示——
checkout检出至本地工作区,此时本地已经检出过
checkout as new local branch检出至本地工作区,并创建新分支
compare两个分支进行比较,比如,我想拿当前的test分支与本地的master分支进行比较,会看到——
会把各自提交的变更内容一一列表出来。要注意,这里不包含本地所进行的更改尚未提交到本地仓库的部分,即没有commit的部分。
merge进行合并操作,以比较版本合入当前版本中,merge的过程当中,可能会有冲突(要记住,多人修改同一处代码时,才可出现冲突),稍候介绍怎么处理冲突
delete删除当前分支
OK,branches面板介绍完毕,当然还可以在最右下角同样有branches面板操作入口,如下——
继续介绍,仓库二级导航——
Tag打tagMerge Changes合并操作Stash Changesstash操作,具体用法,你若不知,可以参考一下下面的文章... ...
这里省略剩下的那些操作,关于merge、stash、reset的一些操作细节,需要先懂得这三个命令的相关参数的具体含义,再去操作就很好理解了。
OK,关于右键菜单就介绍到这儿了,可以看到它能做的事儿——
1. 非常方便的对对比文件或者文件夹的差异,试图直观明了
2. 方便做常规的add/commit/revert操作等
3. 方便操作版本库的相关管理,如fetch/merge/push/rebase等
Version Control面板
OK,接下来,介绍一下Version Control面板——
首先,来介绍对应Local Changes
这里也就是工作区的更改与当前版本差异的diff文件列表,Unversioned Files也就是代表没有加入到版本管理的文件列表,需要进行add操作,添加进缓存区中;Default中的文件是代表版本管理中经过本地更改的文件, 需要进行add 和commit操作,将更改的文件添加入缓存区中并提交到本地版本库中。要知晓git add和git commit做了什么事儿
git add:暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象
库中的一个新的对象中,而该对象的ID 被记录在暂存区的文件索引中。
git commit:暂存区的目录树写到版本库(对象库)中,对应的分支会做相应的更新。
即HEAD指向的目录树就是提交时暂存区的目录树
可以对新增的文件进行add 操作,如下——
其余选项——
Revert:同上述讲述,即还原本地变更Move to Another Changelist:转入其他变更标记,分门别类,好管理Show Diff:同上述讲述Jump to Source:直接打开变更源文件Ignore:加入.gitnore文件中Create Patch:打变更补丁Shelve Changes:与stash功能略相近,请参看后边文章
紧接着,我们最常用的操作就是Commit Changes了——
可以单独去commit,当然也可以commit和push 一起进行。
可以看出来,这里的Local Changes也就起到了"git status"命令的作用。
OK,继续介绍log面板——
选中相应分支,右键,我们看到——
我们看到,常规的选项,在上述中已提及过,在此就不在啰嗦,这里的Cherry-Pick,指的是将选中版本变更的文件内容merge进当前工作区中,我们会看到,同样会出现冲突的情况——
当我们选中merge操作时,看到如下图——
虽然机器解决的冲突不是令人很满意,不过你可以再merge result面板中,直接去解决冲突,直接看到历史版本,比较直观。
解决冲突后,也就让需要再去做add和commit操作,至于怎么使用,在上述已提及。
接下来是console面板,它用于记录所有你通过webstorm中git操作的命令,如下——
看一看到,这里的命令行,也就是常规的我们熟知的命令行。
Version Control面板介绍到这儿。可以看到,我们使用Version Control面板,我们可以做的事儿——
1. 可以随时看到本地变更的文件列表和内容,方便提交及还原
2. 看到所有分支(自己与小伙伴儿的)动态,及对应的变更内容,方便对比文件,方便追查问题
3. 可以reset或者merge任意版本
4. 同样可以看到任意操作的命令行,利于学习git命令行
优势
整体而言,个人觉得webstorm操作git起来,还是很方便,大致分成三类——
1. 对比类操作compare
2. 仓库类操作repository
3. 本地操作local changes
如果没有底下的这个框,可以在view 的tool windows里面找到控制框。
————————————什么用都么有的分割线———————————————————
以上内容纯属手工copy,欢迎各位大佬指正~\(≧▽≦)/~