使用WebStorm和Git开发Node.js应用
一、使用WebStorm创建express项目
1、创建项目
File|new project,先选择location为D:\,输入项目名称Caller,选择Node.js Express项目。
2、修改配置:智能感知
file|setting|javascript|node.js,在project目录下只选择三个Ecma script,也就是js支持,再选择两个node.js支持。移动到public目录,开启dhtml、html5。
注意每行右侧是可多选的下拉框。
3、修改配置:运行和调试
Run菜单的Edit Configurations,在run/debug configuration对话框,勾选check no other instances are running
意思是每次运行的时候,检查是否有其他实例在运行。
勾选此项之后,我们多次重新运行项目,就不会出现错误。
二、修改配置:
1、智能感知
2、Git
3、运行调试设置
三、启用Git源码管理
1、设定用户名和邮件地址
D:\>git config --global user.name 毕丹军
D:\>git config --global user.email 11084184@qq.com
2、启用Git源码管理
Vcs菜单,Enable version control integration,激活源码管理集成。我们选择Git。
在下方的version control选项卡可以看到,实际上执行了下面的命令:
23:40:13.651: cd D:\Caller
23:40:13.652: git init
Initialized empty Git repository in D:/Caller/.git/
启用后,在项目文件夹下建立了一个新的文件夹D:\Caller\.git,这就是Git的工作文件夹,项目文件夹下有这个文件夹,表示项目文件夹整体受Git管理。
3、设定哪些文件和文件夹要忽略:
在项目文件夹下,添加一个名为.gitignore的文件,这个文件将告知git当前文件夹下哪些内容是需要忽略的,效果很明显,加入此文件后,unversioned files从490变成6个,我们排除了webstorm的项目文件夹和npm_module文件夹。
将如下内容(为WebStorm的node.js项目定制的)拷贝进来:
*.idea
.idea
idea
.DS_Store
*.DS_Store
lib-cov
*.seed
*.log
*.csv
*.dat
*.out
*.pid
*.gz
pids
logs
results
node_modules
npm-debug.log
4、将当前项目加入到Git
最初,项目文件夹的所有文件,都没有加入缓存区。
我们在下方的changes选项卡,可以看到文件夹所有文件,均未加入缓存。点click to browse查看文件夹上所有文件,注意次序:先勾选项目文件夹,然后去掉对npm_module目录。我们不将npm加入源码库,这意味着一旦得到源代码,需在项目文件夹下运行npm install命令添加相应的依赖,或将项目依赖的npm_module文件夹拷贝到项目文件夹,项目才能正常运行。
这里是需要理解的:本地缓存->本地源码库->远程源码库,三个级别。我们查看version control选项卡,可以看到加入缓存实际上是git add命令,add进来的是"准备提交到本地源码库",只有执行git commit才能真正放到本地源码库。
在changes选项卡,右键,Commit。这时缓存区的文件才真正的存入了本地源码库。
5、我们在changes的log标签,看到版本历史,刚刚提交了一次。
选中刚刚的提交,右键,Create Tag,我们做一个标签:V0.01
看看版本管理控制台,实际上运行了命令git tag V0.0.1 6db050e
四、本地分支及开发流程:
本地Git分支:
1、默认分支
在签入文件前,我们在右下方可以看到branches,只有一个master分支。这个分支,我们将作为发布版本的地方,换句话说,这个分支的每一次演进,都是项目的一个发布版本。我们将创建一个develop分支,这是开发分支,项目最新的状态,很显然,开发分支稳定实现了发布版本的功能集合之后,可合并到master分支并打上版本Tag。
第一次签入后,我们将其作为0.01版,同时在branches窗口,我们可创建新分支了。
2、创建develop分支
实际上执行了如下命令:
git checkout -b develop
当前分支是master,创建新的分支(以当前分支的状态)develop,然后切换当前分支为develop分支。
当然,我们不在develop分支上工作,而是每开始一项工作,创建一个临时分支,完成后合并到develop分支。当develop分支可以作为版本发布的时候,创建临时的发布分支,完成工作后合并回开发分支,再由开发分支合并到master分支,打上版本号tag。
我们看看WebStorm最下一行,右侧,显示Git:Develop,表示当前我们在develop分支工作。点击它,可以发现多了一个本地分支master,我们随时可切换过去。
那么我们这里演练一下,先创建一个分支,目标是在空的文件夹,加入README.md文件,分支命名为folder
做完后签入,然后合并到develop分支,再删除folder分支。
首先,在右下点击Git develop,打开branches窗口,new branch基于当前的分支创建新的分支,命名为folder,此时当前分支切换到folder分支。
在空的文件夹下,增加README.md,会出现是否加入版本库的提示,加入。
然后commit
现在工作做完了。
我们切换到develop分支,我们会发现,放放加入的几个文件不存在了。
然后在分支窗口选择folder分支,选merge合并。
此时会提示已经合并,并给出Delete folder的超链接,点击它,folder分支被删除。
再看看,当前的分支为develop,刚刚加入的文件都出现了。
这是常规的工作流程。
五、分享到GitHub
1、在GitHub注册一个账号,假设为wflite
2、file->setting->GitHub change credentials,输入用户名和密码。
3、在VCS->import into version control->share project on github
按要求确定GitHub的远程库名称、并输入用户名和密码。
此时在建立了与GitHub项目的关联,可以push
4、VCS->Git->Push
push current branch to alternative branch默认是不勾选的,表示push到远程的master,我们要在远程库也建立develop分支,因此本地切换到develop分支之后,再push一次,勾选这个选项,会在远程库也建立develop分支,并将本地分支和远程同名分支关联起来。
5、今后,我们维持本地与GitHub的develop分支的同步即可,在发布一个版本时,才将本地的master分支push到服务器master分支。