使用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分支。