目录
git介绍
Git是一个分布式版本控制系统,目前项目代码版本管理中的主流工具。
master分支
代码库应该有一个主分支(master)。对外发布的正式版本,都应该在这个主分支上发布。master分支应保持任何时间均可向生产发布的状态,与线上版本一致。在每次上线前均应对master分支打上相应的标签,可区分不同版本代码。
dev分支
dev分支为开发分支,此分支应保持代码可随时部署于测试环境,意思就是此分支以完整功能块为最小单位,不应提交部分功能到此分支,实际使用中应从“功能分支”中合并。
release分支
release是预发布分支,可以采用release-*的形式命名。在发布正式版本之前,我们需要从dev分支中分出release分支,可在此分支上对预发布的版本进行测试,并且在此分支上对预发布的版本进行bug修复,此分支不影响dev分支的其他功能的正常开发。当预发布的版本测试完备后,可将此分支合并进dev分支和master分支,具体操作可先合并至master分支,然后对master分支打相应标签并且从master分支上线程序,若上线过程中发现bug(意外情况),可在release修正,合并至master,直至成功上线。上线完成后应将release分支合并至dev分支,合并完成后删除此分支。(所有改动合并到了master和dev两条分支)。
fixbug分支
生产发布后可能会出现线上bug需要修复的情况,此时应该从master分支中分出fixbug分支,在fixbug分支上修复并测试完成后,合并至master分支,并且从master分支打标签上线,若上线中有问题可在fixbug修正并合并到master直至上线成功。上线成功后应将release分支合并至dev分支,合并完成后删除此分支。(所有改动合并到了master和dev两条分支)。
功能分支
开发人员在开发某个或某些功能块时应从dev分出相应的功能分支,可以具体的功能名称命名,在功能分支上开发测试完成后可合并入dev分支并删除此分支。
动手操作
创建git服务端项目
这里以gitlab为例创建公开的git项目:
创建成功后可获取git服务端的地址:
安装git客户端
linux安装git
使用简单的命令即可安装
yum install git
windows安装git
在git官网下载安装包,地址为:https://git-scm.com/downloads
按默认选项安装即可。
git命令处理相关操作
创建工作目录
cd /usr/local
mkdir gitdemo
cd gitdemo
# 为后续分支合并测试提供目录层级
mkdir v1
mkdir v2
cd v1
下载项目
# 省略了后面的地址
git clone ssh://……
创建分支
#进入git目录
cd test
#查看分支命令,可以查看当前处于什么分支
git branch
# 创建分支:
git branch dev
# 切换分支:
git checkout mybranch
# 创建并切换分支:
git checkout -b mybranch
提交代码
#切换至dev分支
git checkout dev
#查看分支情况
git branch
#创建新文本
vi 1.txt
#添加到git管控,add . 表示添加所有
git add .
#查看git状态
git status
#提交到本地
git commit -m 'first commit'
#更新远程代码到本地
git pull
#提交代码到远程
git push origin dev
代码冲突
#查看冲突文件
git status
#修改冲突
vi 1.txt
#提交冲突修改
git add .
git status
git commit -m 'message'
分支合并
#将dev合并至master
#切换至master分支
git checkout master
#更新远程代码到本地
git pull
#合并分支
git merge dev
#若存在冲突 解决冲突 并提交
#推送到远程仓库
git push origin master
git可视化操作 - eclipse
创建分支
在gitlab上点击创建分支按钮
创建dev分支
提交代码
在项目上点击右键,选择Team→commit
将需要提交的文件拖拽到staged Changes窗口 ,在Commit Message 输入提交的描述。点击Commit即可提交,或者可直接点击Commit and push 可提交并推送到远程仓库,省去下一步操作。
推送本地提交记录到远程仓库,在项目点击右键,选择Team→Push to Upstream。推送完成后项目中↑箭头消失。
代码冲突
代码更新后或者merge后存在冲突会如图所示
打开冲突的文件,调整为合并后文件并保存,保存后将修改文件进行Add to Index 操作。
操作完成后红色图标变为星号
此时可提交对冲突文件的合并操作,项目右键→Team→Commit
提交之后项目只剩下上箭头,推送至远程仓库即可
冲突较多或者比较复杂时,可使用Synchronize Workspace来合并冲突:
分支合并
以将dev分支合并至master分支为例,先将项目切换至master分支:
项目右键,选择Team→Merge
选择需要合并的分支,点击Merge即可
若存在冲突可参考 代码冲突 小节。