git工作流
集中工作流
功能分支工作流
-
gitflow工作流
master分支存放所有正式發(fā)布的版本,可以作為項目歷史版本記錄分支,不直接提交代碼。僅用于保持一個對應(yīng)線上運行代碼的 code base。
develop分支為主開發(fā)分支,一般不直接提交代碼
feature分支為新功能分支,feature分支都是基于develop創(chuàng)建的,開發(fā)完成后會合并到develop分支上。同時存在多個
release分支基于最新develop分支創(chuàng)建,當新功能足夠發(fā)布一個新版本(或者接近新版本發(fā)布的截止日期),從develop分支創(chuàng)建一個release分支作為新版本的起點,用于測試,所有的測試bug在這個分支改。測試完成后合并到master并打上版本號,同時也合并到develop,更新最新開發(fā)分支。(一旦打了release分支之后不要從develop分支上合并新的改動到release分支),同一時間只有1個,生命周期很短,只是為了發(fā)布。
-
hotfix分支基于master分支創(chuàng)建,對線上版本的bug進行修復(fù),完成后直接合并到master分支和develop分支,如果當前還有新功能release分支,也同步到release分支上。同一時間只有1個,生命周期較短
git工作流
forking工作流
git基本命令
-
git add添加文件 -
git commit -m "init project"提交 -
git push
推送到遠程分支,第一次推送本地開的新分支到遠程倉庫,要指定分支git push --set-upstream origin <branch-name>因為git并不知道要把當前分支和遠程的哪個分支對應(yīng)在一起 -
git pull拉取遠程分支的代碼,pull本質(zhì)上是git fetch & git merge -
git log查看提交日志 -n 查看前n條--pretty=oneline顯示為一行 -
git reset回退git reset --hard可以回退提交的 -
gitcheckout -- <file>拉取暫存區(qū)文件并將其替換成工作區(qū)文件 -
git diff -- <file>修改的文件和暫存區(qū)文件比較不同,如果沒有暫存區(qū),以最近一次提交做對比。 -
git status顯示工作目錄和暫存區(qū)的狀態(tài) -
git checkout -b dev創(chuàng)建分支,然后切換到分支 相當于git branch dev & git checkout dev -
git branch查看分支 -b 查看所有遠端分支 -
git merge dev合并指定分支到當前分支 -
git branch -d dev刪除本地分支 -
git push origin :dev刪除遠程dev分支 -
git cherry-pick遴選
