Git分支管理规范和解析
2017-06-15 09:32
169 查看
quick_start
why_git
仓库和分支管理
远程和本地
origin远程仓库
本地仓库
分支管理
主分支master
主分支developdev
主分支releasetest
支持分支feature
支持分支hotfix
实战
参与新项目
新需求开发
提交修改代码到本地分支
合并到dev分支
合并冲突merge
git命令
git_GUI
参考
ssh-keygen -t rsa -C “youremail”
vim ~/.ssh/id_rsa.pub 将公有钥匙设置到 http://xxx.xxx.xxx.xxx/profile/keys
cd /f/gitProject
git clone git@xxxxxxxxx.git
git branch -a 查看自己所在分支和所有远程分支
git checkout dev 切换到dev开发分支
git branch feature/{yourname}_{workdetail} 在dev上创建自己的开发分支
随便修改一个文件,并增加一个类文件
git status 查看修改的文件状态
git diff 查看修改内容
git add . 暂存修改的文档
git commit -m ‘my first commit’ 提交修改内容
git push origin feature/{yourname}_{workdetail} 提交到远程的自己的开发分支
git checkout dev 切换到自己的父分支
git pull origin dev 跟新本地的dev分支
git checkout feature/{yourname}_{workdetail} 切换到自己分支
git merge dev 将dev上别人的修改合并
git status 查看是否有修改,如果有修改执行git commit -a
git checkout dev 切换到自己的父分支
got merge feature/{yourname}_{workdetail}将自己的修改合并到大家共同的开发父分支
中央仓库定义为origin,克隆代码到本地之后对本地所有分支有update,commit权限,同样不联网状态下也可以commit代码
速度更快
分布式但是又集中化管理
更多对比和好处缺点参考 GitSvnComparison
git是一个版本控制系统,不仅可以控制代码,任何文件都可以通过git进行版本控制
每个开发者都可以从远程clone代码并且新建本地分支和push新建分支到远程仓库,并且也可以从其他开发者的远程分支fetch代码。
这个文件夹非常重要,所有的版本信息,更新记录,以及Git进行仓库管理的相关信息全部保存在这个文件夹里面。不要修改/删除其中的文件,以免造成数据的丢失。
上图涵盖了开发过程中各种情况的分支流程
继承分支 dev
合并分支 dev
命名规范:除了master,develop,,hotfix-*,建议新建文件夹方式feature/xxxx
继承分支 master
合并分支 dev master
命名规范:除了master,develop,feature-*,建议新建文件夹方式hotfix/xxxx
关于分支管理可以详细参考这篇文章a-successful-git-branching-model
译文:https://wenku.baidu.com/view/2450c7fdaef8941ea76e055f.html
git clone git@xxxxxx.git
git checkout dev 切换到dev开发分支
git branch feature/{yourname}_{workdetail} 在dev上创建自己的开发分支
git diff 查看修改内容
git add . 暂存修改的文档
git commit -m ‘my first commit’ 提交修改内容
git pull origin dev 跟新本地的dev分支
git checkout feature/{yourname}_{workdetail} 切换到自己分支
git merge dev 将dev上别人的修改合并
git status 查看是否有修改,如果有修改执行git commit -a
git checkout dev 切换到自己的父分支
got merge feature/{yourname}_{workdetail}将自己的修改合并到大家共同的开发父分支
例如idea右键工程->Git->Resolve Conflicts->弹框中点击merge->然后根据情况选择接受服务器版本还是本地版本->apply/abort
* git config –global user.name “xxx” 配置用户名
* git config –global user.email “xxx@xxx.com” 配置邮件
* git clone git@xxxxxx.git clone远程仓库
* git branch 查看当前分支
* git checkout dev 切换到dev分支
* git pull origin dev 拉取远程dev分支并merge到当前分支
* git branch feature/reward 创建需求reward分支
* git status 查看当前版本状态(是否修改)
* git diff 查看修改内容
* git commit -m ‘xxx’ 提交
* git log -5 显示5行日志
更多可以参考官方手册 git命令手册
source tree功能比较成熟,但是注册安装需要翻墙
http://nvie.com/posts/a-successful-git-branching-model By Vincent Driessen
https://git.wiki.kernel.org/index.php/GitSvnComparsion
https://git-scm.com/docs
https://gist.github.com/guweigang/9848271
why_git
仓库和分支管理
远程和本地
origin远程仓库
本地仓库
分支管理
主分支master
主分支developdev
主分支releasetest
支持分支feature
支持分支hotfix
实战
参与新项目
新需求开发
提交修改代码到本地分支
合并到dev分支
合并冲突merge
git命令
git_GUI
参考
quick_start
安装git工具可以使用git命令行,启动命令行工具 git官网下载ssh-keygen -t rsa -C “youremail”
vim ~/.ssh/id_rsa.pub 将公有钥匙设置到 http://xxx.xxx.xxx.xxx/profile/keys
cd /f/gitProject
git clone git@xxxxxxxxx.git
git branch -a 查看自己所在分支和所有远程分支
git checkout dev 切换到dev开发分支
git branch feature/{yourname}_{workdetail} 在dev上创建自己的开发分支
随便修改一个文件,并增加一个类文件
git status 查看修改的文件状态
git diff 查看修改内容
git add . 暂存修改的文档
git commit -m ‘my first commit’ 提交修改内容
git push origin feature/{yourname}_{workdetail} 提交到远程的自己的开发分支
git checkout dev 切换到自己的父分支
git pull origin dev 跟新本地的dev分支
git checkout feature/{yourname}_{workdetail} 切换到自己分支
git merge dev 将dev上别人的修改合并
git status 查看是否有修改,如果有修改执行git commit -a
git checkout dev 切换到自己的父分支
got merge feature/{yourname}_{workdetail}将自己的修改合并到大家共同的开发父分支
why_git
把在CVS/SVN传统中很高级的话题“分支”、“合并”入门化,成为基础操作中央仓库定义为origin,克隆代码到本地之后对本地所有分支有update,commit权限,同样不联网状态下也可以commit代码
速度更快
分布式但是又集中化管理
更多对比和好处缺点参考 GitSvnComparison
git是一个版本控制系统,不仅可以控制代码,任何文件都可以通过git进行版本控制
仓库和分支管理
远程和本地
origin远程仓库
上图中origin是团队的中央仓库,整个团队共同维护,每个仓库可以简单理解成一个目录,这个目录里面的所有文件都通过Git来实现版本管理每个开发者都可以从远程clone代码并且新建本地分支和push新建分支到远程仓库,并且也可以从其他开发者的远程分支fetch代码。
本地仓库
上图中的alice和bob等都是本地分支,本地可以通过clone远程分支或者init建立本地仓库,这个目录中有一个“.git”的文件夹。这个文件夹非常重要,所有的版本信息,更新记录,以及Git进行仓库管理的相关信息全部保存在这个文件夹里面。不要修改/删除其中的文件,以免造成数据的丢失。
分支管理
上图涵盖了开发过程中各种情况的分支流程
(主分支)master
线上分支:时刻保持与线上代码一致,理论上是每次master更新后,都需要通过自动化部署工具进行上线发布(主分支)develop(dev)
开发分支:任何迭代需求分支都以这个分支为父分支进行建立(主分支)release(test)
预发布分支:开发完成和将一个迭代的所有修改合并到该分支供测试人员测试(支持分支)feature
feature分支是短期的一个需求开发过程中创建的一个特性分支,理论上每一个需求可以细分成一个特性分支,一次迭代可能会细分出5-6个特性分支继承分支 dev
合并分支 dev
命名规范:除了master,develop,,hotfix-*,建议新建文件夹方式feature/xxxx
(支持分支)hotfix
hotfix分支是为了解决一个紧急的线上问题而建立的分支继承分支 master
合并分支 dev master
命名规范:除了master,develop,feature-*,建议新建文件夹方式hotfix/xxxx
关于分支管理可以详细参考这篇文章a-successful-git-branching-model
译文:https://wenku.baidu.com/view/2450c7fdaef8941ea76e055f.html
实战
参与新项目
cd /f/gitProjectgit clone git@xxxxxx.git
新需求开发
git branch -a 查看自己所在分支和所有远程分支git checkout dev 切换到dev开发分支
git branch feature/{yourname}_{workdetail} 在dev上创建自己的开发分支
提交修改代码到本地分支
git status 查看修改的文件状态git diff 查看修改内容
git add . 暂存修改的文档
git commit -m ‘my first commit’ 提交修改内容
合并到dev分支
git checkout dev 切换到自己的父分支git pull origin dev 跟新本地的dev分支
git checkout feature/{yourname}_{workdetail} 切换到自己分支
git merge dev 将dev上别人的修改合并
git status 查看是否有修改,如果有修改执行git commit -a
git checkout dev 切换到自己的父分支
got merge feature/{yourname}_{workdetail}将自己的修改合并到大家共同的开发父分支
合并冲突merge
当在合并分支出现冲突的时候,建议使用idea等可视化工具进行合并例如idea右键工程->Git->Resolve Conflicts->弹框中点击merge->然后根据情况选择接受服务器版本还是本地版本->apply/abort
git命令
git的命令非常多 基本常用的有:* git config –global user.name “xxx” 配置用户名
* git config –global user.email “xxx@xxx.com” 配置邮件
* git clone git@xxxxxx.git clone远程仓库
* git branch 查看当前分支
* git checkout dev 切换到dev分支
* git pull origin dev 拉取远程dev分支并merge到当前分支
* git branch feature/reward 创建需求reward分支
* git status 查看当前版本状态(是否修改)
* git diff 查看修改内容
* git commit -m ‘xxx’ 提交
* git log -5 显示5行日志
更多可以参考官方手册 git命令手册
git_GUI
git 官网 提供了很多git可视化工具连接,随便选用一个使用即可。source tree功能比较成熟,但是注册安装需要翻墙
参考
想要深入理解git 参考 git dochttp://nvie.com/posts/a-successful-git-branching-model By Vincent Driessen
https://git.wiki.kernel.org/index.php/GitSvnComparsion
https://git-scm.com/docs
https://gist.github.com/guweigang/9848271
相关文章推荐
- Git分支管理规范
- Git各开发分支管理规范
- git-flow 分支管理模式其工具
- Git分支管理策略
- git使用笔记3--分支合并与管理
- git-分支管理
- git创建与管理远程分支
- Git分支管理
- Git 远程分支创建与管理
- Git分支管理策略
- GIT分支管理是一门艺术
- GIT分支管理是一门艺术
- git学习笔记(一):创建和管理远程分支
- GIT分支管理是一门艺术
- Git 管理多个分支的公共部分 How to manage the common part of multiple branches
- Git分支管理策略
- GIT分支管理是一门艺术
- 我也说Git分支管理
- GIT分支管理是一门艺术
- Git创建与管理远程分支