当前位置: 首页 > news >正文

git用法记录

用法:
git flow <subcommand>

Available subcommands are:

init Initialize a new git repo with support for the branching model.
feature Manage your feature branches.
release Manage your release branches.
hotfix Manage your hotfix branches.
support Manage your support branches.
version Shows version information.

Git flow的分支类型

长期分支

master
用途: 稳定版本的分支,产品发布的分支
位置: remote,local

develop
用途: 开发版本
位置: remote,local

短期分支

feature
用途: 特性/功能开发
位置: local,remote*(可以通过feature publish发布到remote上,供团队协作)
分支建立: 从develop分支建立,可以指定起始点
分支合并: 合并回develop分支

release
用途: 版本发布的准备分支
位置: local,remote*(可以通过release publish发布到remote上,供团队协作)
分支建立: 从develop分支建立,可以指定起始点
分支合并: 合并回develop和master分支

hotfix
用途: 紧急Bug修复
位置:local
分支建立: 从master建立分支
分支合并: 合并回master和develop

子命令

feature

用法:
git flow feature [list] [-v]

git flow feature start [-F] <name> [<base>]
git flow feature finish [-rFk] <name|nameprefix>
git flow feature publish <name>
git flow feature track <name>
git flow feature diff [<name|nameprefix>]
git flow feature rebase [-i] [<name|nameprefix>]
git flow feature checkout [<name|nameprefix>]
git flow feature pull <remote> [<name>]


feature start

用法: git flow feature start [-F] <name> [<base>]
功能: 以指定的commit名称(由base参数指定)创建一个feature分支
参数: -F 
'fetch from origin before performing local operation' (建立分支前先从origin下载数据) 默认为false 
该参数在0.4版本有bug,不可用,可以使用 git fetch -q orgin develop代替

name 
feature的名称,对应的分支名称为feature/name

base 
建立feature的start point,默认为develop分支

等价的Git 命令:
1. git fetch -q origin develop //当 -F 设置的时候执行,只是更新.git中的remote内容,不做merge操作
2. 检查本地的develop分支和远程的develop分支是否一致,即refs/develop 和 refs/remote/origin/develop(建议先执行git pull origin develop或者git fetch origin develop)
3. git checkout -b feature/name develop //建立分支

例子:
git flow feature start story_1


feature publish

用法: git flow feature publish <name>
功能: 将一个本地的feature分支push到远程的仓库中,该命令可用于与团队其他成员合作开发或者备份自己的代码
参数: name
本地feature的名称

等价的Git命令:
1. 检查本地的工作目录及分支
2. git fetch -q origin
3. git push origin feature///name://refs/heads/feature///name//
4. git fetch -q origin
5. git checkout feature/name 例子:
git feature publish story_1

feature track

用法: git flow feature track <name>
功能: 将由feature publish发布的feature分支从远程仓库下载到本地,并建立同名分支
参数: name
远程feature的名称,对应feature publish的名称

等价的Git命令:
1. 检查本地的工作目录是否"干净";检查分支是否已经存在,如果已经存在,则报错退出
2. git fetch -q origin 
3. git checkout -b name origin/feature/name 例子:
git feature track name

feature pull

用法: git flow feature pull <remote> [<name>]
功能: 将由feature publish发布的feature分支从远程仓库下载到本地,并建立同名分支;如果本地已经有同名分支,则对其执行pull操作
参数: name
远程feature的名称,对应feature publish的名称

等价的Git命令:
a. 如果本地已有name分支
1. git pull -q origin feature/name

b. 如果本地没有name分支
1. git fetch -q origin feature/name
2. git branch --no-track feature/name
3. git checkout -q feature/name 例子:
git flow feature pull origin story_1

feature finish

用法: git flow feature finish [-rFk] <name|nameprefix>
功能: 完成由name指定的feature分支的开发,将其合并到本地的develop分支,合并成功后删除该分支
参数: -r 
在合并到develop分子时,使用rebase机制,而不是merge

-F
在执行finish操作前,先执行fetch,从远程仓库下载更新

-k
执行完finsh后,保留feature分支,即不删除分支

name
feature的名称,对应feature start的名称

等价的Git命令:
1. git fetch -q origin feature/name #当参数中设置了-F时
2. git flow feature rebase name develop #当参数中设置了-r时
3. git checkout develop
4. git merge feature/name #根据develop分支和feature/name分支之间的提交的个数决定是否设置--no--ff
5. #如果设置了-F参数,则删除远程的分支 git push origin :ref/heads/feature/name 
6. #如果没有设置-k参数,则删除本地的分支

例子:
git flow feature finish story_1


feature rebase

用法: git flow feature rebase [-i] [<name|nameprefix>]
功能: 以develop分支作为upstream,对指定的feature分支执行rebase操作
参数: -i 
等价与rebase -i

name
feature的名称

等价的Git命令:
1. git checkout -q feature/name
2. git rebase develop

例子:
git flow feature rebase -i story_1

release

用法:
git flow release [list] [-v]
git flow release start [-F] <version>
git flow release finish [-Fsumpk] <version>
git flow release publish <name>
git flow release track <name>

release start

用法: git flow release start [-F] <version> [<base>]
功能: 从develop分支指定的起始点(可选,默认为HEAD)建立版本发布的分支
参数: version
版本号

base
建立分支的起始点,可选参数,默认为develop HEAD

等价的Git命令:
1. git checkout -b release/version develop

例子:
git flow release start v0.1

release publish

用法: git flow release publish <name>
功能: 将release分支发布的远程仓库,供团队协作
参数: name
release名称,与start 中的version相对应

等价的Git命令:
1. git fetch -q origin
2. git push origin release/name:refs/heads/release/name 例子:
git flow release publish v0.1

release track

用法: git flow release track <name>
功能: 将由 publish发布的feature分支从远程仓库下载到本地,并建立同名分支,供团队协作
参数: name
远程feature的名称,对应feature publish的名称

等价的Git命令:
1. git fetch -q origin
2. git checkout -b release/name origin/release/name 例子:
git flow release track v0.1


release finish

用法: git flow release finish [-Fsumpk] <version>
功能: 完成由version指定的release分支的开发,将其合并到develop和master分支,并为该分支创建一个tag
参数: -F 
执行操作前先执行fetch

-s
对新建的tag签名

-u
签名使用的GPG-key

-m
使用指定的注释作为tag的注释

-p
当操作结束后,push到远程仓库中

-k
保留分支

-n
不创建tag

version
版本号

等价的Git命令:
1. 如果设置了 -F 参数,下载更新
1.1 git fetch -q origin master
1.2 git fetch -q origin develop

2. 合并回master分支
2.1 git checkout master
2.2 git merge --no-ff release/version

3. 如果没有设置 -n 参数,创建tag
3.1 git tag 

4. 合并回develop分支
4.1 git checkout develop
4.2 git merge --no-ff release/version

5. 如果没有设置 -k 参数
5.1 git branch -d release/version

6. 如果设置 -p 参数
6.1 git push origin develop
6.2 git push origin master
6.3 git push --tags origin
6.4 git push orign :release/version #删除远程仓库中的release分支 例子:
git flow release finish -p v0.1

转载于:https://www.cnblogs.com/alex77lee/archive/2011/11/16/2251003.html

相关文章:

  • 模板 - 日期类
  • POJ数学题目
  • SCUT - 142 - 第n个素数
  • 敏捷开发般若敏捷系列之二:什么是敏捷(上)(无住,不住于法,破法执)...
  • C#打包应用程序
  • SCUT - 37 - 手速帝CZK - 分块
  • HDU 1166 敌兵布阵
  • babel
  • 转载 对于struct file_operations中ioctl消失的学习笔记
  • SCUT - 77 - 哈利波特与他的魔法杖
  • 圆满完成 中大 《性能测试与LoadRunner应用》 实战训练课!
  • 利用vi编辑器创建和编辑正文文件
  • c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)
  • Simulation of AVL Trees (DYNAMIC)
  • hive中function函数查询
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 《深入 React 技术栈》
  • 2017前端实习生面试总结
  • Java 最常见的 200+ 面试题:面试必备
  • Javascript 原型链
  • linux安装openssl、swoole等扩展的具体步骤
  • Python 基础起步 (十) 什么叫函数?
  • ReactNative开发常用的三方模块
  • 阿里研究院入选中国企业智库系统影响力榜
  • 如何学习JavaEE,项目又该如何做?
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 一起参Ember.js讨论、问答社区。
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • #WEB前端(HTML属性)
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (ctrl.obj) : error LNK2038: 检测到“RuntimeLibrary”的不匹配项: 值“MDd_DynamicDebug”不匹配值“
  • (k8s中)docker netty OOM问题记录
  • (Mirage系列之二)VMware Horizon Mirage的经典用户用例及真实案例分析
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (十一)c52学习之旅-动态数码管
  • (五)c52学习之旅-静态数码管
  • (一) springboot详细介绍
  • (一)基于IDEA的JAVA基础1
  • (原)Matlab的svmtrain和svmclassify
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • ***测试-HTTP方法
  • .NET Core引入性能分析引导优化
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 药厂业务系统 CPU爆高分析
  • .NET 中的轻量级线程安全
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .net访问oracle数据库性能问题
  • .net经典笔试题