GitFlow with SourceTree

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/buyueliuying/article/details/88343692

环境: 本机 mac , Git服务器 :虚拟机centOS

1.确认Git服务器和本机都已安装Git

git --version

2.到Git服务器放置项目的地方执行git初始化指令
我这里的Git服务器的项目路径为/website/git
本地mac的项目路径为/website/www
项目名称为test

cd /website/git
mkdir test
cd test
#这里可以重命名,默认为.git
git init

这里建议使用 git init --bare ,git init和git init --bare的区别

3.确保ssh无密连接正常
https://www.jianshu.com/p/b80029475157

3.打开Sourcetree 克隆一个仓库
在这里插入图片描述
这里的源URL为
[email protected]:/website/git/test/.git

或者mac直接使用git clone指令克隆

cd /website/www
git clone [email protected]:/website/git/test/.git

需要注意的是如果上面使用的是git init --bare ,那么源URL应改为[email protected]:/website/git/test

– 可能的错误
1.报错bash: git-upload-pack: 未找到命令

4.推送(push)

点击推送按钮推送到默认的master分支

可能出现的问题
在这里插入图片描述可以在Git服务器的相应位置执行如下指令解决

cd cd /website/git/test
git config receive.denyCurrentBranch ignore

5.在Sourcetree里面使用Git flow

先创建一个名为 develop 的分支,

然后 在菜单栏 仓库-》git-flow 或 hg-flow -》下个操作

在这里插入图片描述这样在项目的开发过程中,就可以规范地管理项目分支了
各分支的作用和使用规范

以后所有的开发都是在develop这个分支上进行;当开发完成一些模块时,就可以合并到 master分支上

6.git-flow 添加新功能
在菜单栏 仓库-》git-flow 或 hg-flow -》建立新的功能

在这里插入图片描述
在这里插入图片描述7.完成新功能
新功能 开发完成之后,再次点击 git flow 按钮,会出现 完成功能 按钮
在这里插入图片描述
点击 确认 按钮,会把当前新功能分支 合并到 develop分支,并删除新功能分支

在这里插入图片描述
8.建立新的发布版本
在菜单栏 仓库-》git-flow 或 hg-flow -》建立新的发布版本
在这里插入图片描述
在这里插入图片描述9.完成版本发布
在菜单栏 仓库-》git-flow 或 hg-flow -》完成版本发布
在这里插入图片描述
在这里插入图片描述确认之后,会发现 发布版本的分支,会合并到 develop分支 和 master 分支,表示项目发布了一个版本

10.建立新的修复补丁
在菜单栏 仓库-》git-flow 或 hg-flow -》建立新的修复补丁

这项就是用来记录和处理bug跟踪的

在这里插入图片描述在这里插入图片描述bug修复分支 是基于 master的

11.完成修复补丁
在菜单栏 仓库-》git-flow 或 hg-flow -》完成修复补丁
在这里插入图片描述确定之后,会发现,新修复的bug分支,会合并到 master分支和develop分支

至此整个git-flow 流程已跑完

– git hooks
hooks实现代码自动部署到测试环境
项目的测试环境为demo.test.cn, 指定测试目录为/website/demo/test

#切换到钩子目录
cd /website/git/test/.git/hooks
#编辑post-receive文件
vi post-receive

文件内容如下

#!/bin/sh
export LANG=zh_CN.UTF-8
unset GIT_DIR
# 指定代码检出目录
DIR=/website/demo/test
#git --work-tree=${DIR} clean -fd

# 不指定默认是master分支
git --work-tree=${DIR} checkout --f

也可指定其他分支,如指定develop分支

git --work-tree=${DIR} checkout  develop --f

授权该文件可执行

chmod +x post-receive

变更项目某个文件测试提交推送,可以看到/website/demo/test目录下会检出master分支的所有文件

– 更新代码到正式环境

正式环境指定目录为/website/realse/test

cd /website/git/test
git --work-tree="/website/realse/test" checkout master --f

work-tree用法

深入理解学习Git工作流

猜你喜欢

转载自blog.csdn.net/buyueliuying/article/details/88343692