目录
前言
GitFlow 是一种 Git 工作流,这个工作流程围绕着project的发布(release)定义了一个严格的如何建立分支的模型。它是团队成员遵守的一种代码管理方案 。
由于它只是一个规范,你可以掌握规范后通过git命令实现,也可以通过一些工具的封装进行使用。
推荐一个Git Flow规范教程:Git之GitFlow工作流 | Gitflow Workflow(万字整理,已是最详)
一、SourceTree
SourceTree
是一款免费的Git图形化客户端,它由Atlassian
开发,提供了跨平台的支持,可运行在Windows和Mac操作系统上。Sourcetree
可以让开发者更方便地使用Git来管理代码,不需要在命令行中输入复杂的Git命令,而是通过可视化的界面完成代码管理操作。
SourceTree
是 Windows 和Mac OS X 下免费的 Git
和 Hg
客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial
和Subversion
版本控制系统工具。支持创建、提交、clone、push、pull 和merge等操作。最主要是它,支持中文、支持中文、支持中文。
SourceTree
支持多种Git工作流,例如Git Flow
、GitHub Flow
等,可以帮助开发者更好地管理Git分支、合并代码、提交代码等操作。此外,SourceTree
还集成了一些实用的功能,例如自动提交、撤销提交、文件比较、文件历史记录等,方便开发者进行代码管理和版本控制。
安装及使用教程参考:【保姆级喂饭教程】Git图形化客户端Sourcetree安装及使用教程
二、Git for Windows (previously MSysGit)
Git for Windows
就是我们在Windows上安装的git,以前的名称叫做MSysGit
,我们平常用到最多的就是它提供的Git Bash
。
在项目文件夹空白处右键,选择Git Bash Here
即可打开
推荐一个Git安装教程:Git安装配置使用详解(全网最全)
Git Flow官网教程:https://github.com/nvie/gitflow/wiki/Windows
1. 下载补丁
如图所示,需要下载getopt.exe、libintl3.dll、libiconv2.dll三个文件
1.1 getopt.exe
打开下载连接:https://gnuwin32.sourceforge.net/packages/util-linux-ng.htm
点击Binaries后面的Zip下载二进制文件
跳转到sourceforge过5秒会自动下载
1.2 libintl3.dll
打开下载连接:https://gnuwin32.sourceforge.net/packages/libintl.htm
点击Binaries后面的Zip下载二进制文件
1.3 libiconv2.dll
打开下载连接:https://gnuwin32.sourceforge.net/packages/libiconv.htm
1.4 安装补丁
解压缩下载文件,依次打开bin文件找到对应补丁,其他不需要,后面我会提供一个压缩包,包括后面用到的git flow项目文件
复制到git的安装目录下的bin文件夹中
2. 安装Git Flow
继续按照官方教程
找一个文件夹,右键选择Git Bash Here
,打开后复制粘贴克隆命令:
git clone --recursive git://github.com/nvie/gitflow.git
注意git不走代理,需要开启虚拟网卡模式,而git://
仍然连接不上
遂换成http地址,加上--recursive
参数是为了递归克隆,因为原项目中使用链接引入了另一个项目
git clone --recursive https://github.com/nvie/gitflow.git
链接的项目下载失败了,猜测应该没用,先不管它了,需要的话可以直接到GitHub上通过网页下载
重新通过GitHub下载一下,这样仓库更简洁,没有.git
文件,文件日期也是原日期,好看一些
解压后点击进入contrib
文件夹
直接在路径栏输入cmd
,即可从当前目录打开cmd窗口,也可以通过cd进入
输入下面命令,git地址替换为安装路径
msysgit-install.cmd "Git 地址"
可以看到就是把git flow对应分支文件复制到git的bin目录下,也需要用到之前没下载下来的文件
正好直接把cmd脚本扔给ai分析一下,确认就是简单的复制文件,完全可以手动实现
【AI问答】GitFlow中msysgit-install.cmd代码分析
先去下载一下引用的项目
https://github.com/nvie/shFlags/tree/2fb06af13de884e9680f14a00c82e52a67c867f1
解压后复制到shFlags
文件下
再次执行会触发覆盖安装,输入y后会删除再复制
最终git/bin目录如下
3. 测试
在随意一个文件夹打开git bash,输入git flow
,显示如下说明安装成功
创建一个空项目,创建一个空文件备用,下面模拟一个日常开发流程
在gitlab上创建一个空项目
3.1 初始化(Initialize)
git flow init
会依次让你设置各类分支名称,一路回车默认即可,版本前缀我加了一个v
创建完成后会自动切换到develop分支
3.2 设置远程
有时候可能会需要和别人共同开发,或者需要提交每日工作进度,需要把功能分支提交到gitlab上
git remote add origin 仓库地址 # 设置远程仓库
git remote -v # 显示所有远程仓库地址
推送master分支
git checkout master # 切换分支
git push -u origin master # 关联并推送(使用 -u 或 --set-upstream)
推送develop分支
git checkout develop # 切换分支
git push -u origin develop # 关联并推送(使用 -u 或 --set-upstream)
gitlab分支如下
3.3 创建分支
各种分支管理流程基本一致,这里以功能分支作为示例,
git flow feature start 分支名
git flow会基于develop分支创建feature分支,无论当前是什么分支,创建后会自动切换到功能分支
3.4 功能开发
打开main文件输入一些文本
3.5 功能提交
git status #提交前查看暂存文件
git add . #添加文件
git commit -m "提交信息" #提交信息,-m 为单行信息
3.6 推送分支
git flow feature publish 分支名 # 推送到远程仓库
3.7 拉取分支
有推送当然就有拉取,除第一次外,每次推送前都应该先拉取
git pull
如果是第一次拉取一个别人的分支,用下面这个,我拉取的是自己就都失败了
git flow feature pull origin 分支名
git flow feature track 分支名
3.7 功能完成
git flow feature finish 分支名
git flow会帮我们把功能分支合并到develop分支,并把自己删除
三、一键安装
由于所有的补丁文件只需复制到git的bin目录下即可,所以可以提前把所有文件打成一个压缩包,这样直接解压不就好了,我已经打包好啦,需要的同学直接下载解压就可以
Git Flow一键安装补丁
想自己操作的也可以下载源文件学习一下
Git Flow补丁源文件
参考文献
Git之GitFlow工作流 | Gitflow Workflow(万字整理,已是最详)
【保姆级喂饭教程】Git图形化客户端Sourcetree安装及使用教程
Git安装配置使用详解(全网最全)
https://github.com/nvie/gitflow/wiki/Windows
【AI问答】GitFlow中msysgit-install.cmd代码分析
https://github.com/nvie/shFlags/tree/2fb06af13de884e9680f14a00c82e52a67c867f1
喜欢的点个关注吧><!祝你永无bug
/*
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 永无BUG
*/