用了一段时间SourceTree之后,想用Git命令来操作一下从开发到版本发布的流程,以下是我实际使用中记录的常见场景下的一些常用Git命令。
1、开发阶段
开发期间涉及到的基本操作:
#从远程develop分支创建本地开发分支test
$ git checkout -b test origin/develop
由于我平时工作场景是:从远程拉取一个develop分支到本地,每次开发新功能是从本地develop分支去创建新分支(创建分支时需要pull一下develop分支,以确保develop分支的代码是最新的),所以就按照我的工作场景来写以下步骤。
#在本地develop分支创建开发分支test
$ git checkout -b test
然后在工作区进行新功能开发,开发完成或者告一段落,可以把工作区修改的文件(file1...)添加到暂存区。
# 查看状态
$ git status
查看状态后,可以看到在test分支下的改动,红色线框中会有提示,怎么添加修改的文件到暂存区,怎么把暂存区的文件恢复到工作区。可以根据提示操作,我们可以联合SourceTree直观的看到在工作区和暂存区的文件。
在工作区的文件:在test分支,会出现未提交的更改,文件在工作区,还未暂存
# 增加文件到暂存区
$ git add .
然后在SourceTree看已添加到暂存区的文件:在test分支,会出现未提交的更改,文件已添加到暂存区,工作区即没有任何修改文件
#把暂存区的所有文件恢复到工作区
$ git reset HEAD .
暂存区恢复到工作区后,文件和添加到暂存区时是一致的;
如果不想恢复暂存区的文件A,可以在工作区修改文件A,再次添加到暂存区,文件就会覆盖上次添加的文件 。
# 增加文件到本地仓库区
$ git commit -m "本次提价说明信息"
git命令提交成功,可以看一下SourceTree中的文件变化:
此时在test分支上,没有了未提交的更改的提示。代码已从工作区---【add】暂存区---【commit】到本地仓库区。
2、开发完成,合并分支
功能开发完成后,可以把开发的分支合并到本地的develop分支
# 拉取远程develop分支,并与test分支合并(此步骤必须在push之前操作,如有文件冲突,可先在本地解决冲突的文件)
$ git pull remote develop
# 切换到develop分支
$ git checkout develop
# 合并test分支到develop分支
$ git merge test
# push develop分支到远程仓库
$ git push
# 删除本地test分支
$ git branch -d test
3、准备发布版本
此分支用于发布前的准备,它与功能开发的分支相似,不同之处在于它是专门为产品发布准备的。
# 发布version1.0分支,从develop分支创建一个新的分支
$ git checkout -b version-1.0 develop
4、小结
操作一遍流程后发现,git命令更容易让开发者理解各个步骤的流程,加深工作区(workspace)/暂存区(Index)/仓库区(repository)的理解;而SourceTree操作方便简单,再配合gitlab使用,可视化的界面相对来说更容易对比每个分支节点的修改内容。