前言

分支介绍

我们现在开发的分支一般是这样的(基于上面那张图片的):

master:上线用的

dev:开发用的

featature_xxx:开发用的

test:测试用的

hotfix:修复bug的

一般是这样子的:

公共分支:

master、dev、test,一般是不会这些分支上开发的,都是由别的分支合并到这些分支上

私有分支:

feature_xxx,hotfix_xxx,这些分支一般是由某个人或某几个人一起开发一个功能点

feature_xxx从dev分支分出来

feature_xxx合并到test去测试

feature_xxx合并到devdev合并到master

master打tag上线

hotfix分支从master分支分出来

hotfix分支合并到test去测试

hotfix分支合并到master

master打tag上线

hotfix分支合并到dev

常用指令

git branch 查看当前的分支
git checkout xxx 切换到xxx分支
git checkout -b xxx 基于当前分支创建分支xxx,并切换到xxx分支
git status 查看文件处于什么状态
git add xxx 放到暂存区,等待被commit
git commit -m "xxx" commit操作,等待被push
git push 将本地分支推向远程分支
git pull 远程分支同步到本地分支
git merge xxx 将xxx分支合并到当前分支
git log --oneline --graph 查看提交历史记录

关于 git merge

  1. 第一种情况

feature_a是从dev分支分出来的,如果将feature_a合并到dev分支中,并且dev分支没有任何更改的情况下,使用merge命令的话,dev的头指针只是移动了一下,如下图所示



  1. 第二种情况

如果dev分支做了改动的话,那么会新建一个commit的点,如下图所示



git merge 指令会根据不同的情况自动执行

git merge --no-ff 会强行采用第二种方案,也就是总会新建一个commit点

关于 git rebase

rebase也是合并操作,与merge不同的是,rebase 命令将另一分支上的所有修改都移至当前分支上

下面是分支情况,我们现在要把dev分支合并到feature_a上

如果采用merge的话,会产生下图效果

如果采用rebase的话,会产生下图效果,它把dev修改的commit都移动到feature_a的前面了

关于git pull

git pull 的操作是git fetch & git merge

git pull --rebase 的 操作是 git fetch & git rebase

最佳实践

git merge --no-ff:私有分支往公共分支合并的时候,比如feature_xxx往dev或test上合并的时候,产生新的commit,代表着有合并的记录

git rebase:feature_xxx需要和dev同步时,合并dev的时候,因为feature_xxx最终会合并到dev,如果采用merge的话,会有好多新的commit

git pull --rebase:使用这个命令进行git pull,不会产生新的commit

思考

不确定:当两个feature_xxx合并的时候,应该用git merge还是git rebase呢?小伙伴有什么想法可以留言一下哈

Git使用感悟的更多相关文章

  1. git初使用总结感悟

    ####首先说说git在工作中的一般流程1.首先就是进入新公司之后,要了解公司用的是什么代码托管,比如gitlab或者github(私有库花钱) 2.找技术同时把你加入到工作项目组并给你权限(一般都是 ...

  2. 学习Git的总结与体会

    学习Git的总结 blog 第一次学习Git是完全按照廖雪峰老师的教程学习的,学的过程中基本上没有遇到什么问题,但是自己实际操作就问题不断了. 首先,还是按照惯例,来膜拜一下廖雪峰老师精简的教程知识吧 ...

  3. Git代码管理心得

    一.概述: 这次按照要求进行了看似复杂,实则非常复杂并且麻烦(网上教程众多且啰嗦)的对git使用的学习,从星期六晚18:48我准备这次作业开始,直到了晚上22:44才结束电脑上的操作···(导致这篇随 ...

  4. 使用PHP脚本远程部署git项目

    准备工作: 1.coding.net创建私有项目 2.安装了Web服务 Git服务的服务器 服务器端: 1.nginx.php-fpm统一用www用户 www 目录,这个可以通过修改配置文件实现. [ ...

  5. 不会git的程序员,会不会被鄙视?

    昨天一朋友在微信上问了我一个问题,我觉得很有趣,于是将本次聊天的内容分享给大家. 我朋友说,如果一个程序员不会使用 git,会不会被别人觉得低一个档次? 事先声明啊,这与公司技术栈无关,不要说有些公司 ...

  6. Svn在工作中的实践感悟

    Svn是一款管理项目代码的版本控制系统,是基于集中式的版本控制系统.在工作中,由于实际开发工作的需要,部门是使用Svn来管理日常的项目开发任务.使用这么长时间了,来谈谈对Svn的感悟. 首先,说下工作 ...

  7. 【学习总结】Git学习-GIT工作流-千峰教育(来自B站)

    Git工作流指南 - av32575602 文档资料 目录: 1-什么是版本控制系统 2-工作流简介 3-集中式工作流 4-功能分支工作流 5-GitFlow工作流 小记: 初看差点放弃了,不过后面还 ...

  8. 关于使用git上传远程仓库的两种情况(新项目与老项目)

    具体的git配置与github仓库ssh配置在这里就不再赘述,本次只讲自己之前遇到的两个内容 1.还没有项目,将远程仓库clone下来直接在里边写项目. 2.已有项目,将已有的项目直接添加到建立好的远 ...

  9. 从Java小白到收获BAT等offer,分享我这两年的经验和感悟

    微信公众号[程序员江湖] 作者黄小斜,斜杠青年,某985硕士,阿里 Java 研发工程师,于 2018 年秋招拿到 BAT 头条.网易.滴滴等 8 个大厂 offer,目前致力于分享这几年的学习经验. ...

随机推荐

  1. PHP connection_status() 函数

    实例 返回连接状态: <?phpswitch (connection_status()){高佣联盟 www.cgewang.comcase CONNECTION_NORMAL:$txt = 'C ...

  2. PHP mysqli_refresh() 函数

    定义和用法 mysqli_refresh() 函数刷新表或缓存,或者重置复制服务器信息.高佣联盟 www.cgewang.com 语法 mysqli_refresh(connection,option ...

  3. 5.20 省选模拟赛 T1 图 启发式合并 线段树合并 染色计数问题

    LINK:图 在说这道题之前吐槽一下今天的日子 520 = 1+1+4+514. /cy 这道题今天做的非常失败 一点分都没拿到手 关键是今天的T3 把我整个人给搞崩了. 先考虑 如果得到了这么一张图 ...

  4. luogu P4284 [SHOI2014]概率充电器 期望 概率 树形dp

    LINK:概率充电器 大概是一个比较水的题目 不过有一些坑点. 根据期望的线性性 可以直接计算每个元件的期望 累和即为答案. 考虑统计每一个元件的概率的话 那么对其有贡献就是儿子 父亲 以及自己. 自 ...

  5. QDC DAY1

    暴毙了,比较自闭的心理,有点崩溃.. LINK:幸福 一道曾经的我肯定能写出来的 但是我心态崩了 所以没有推出来. 当然 还是 我比较垃圾 但同时也不垃圾 ... 求 $T_n =\displayst ...

  6. LVS-NAT:搭建HTTP及HTTPS负载均衡集群

    目录 LVS-NAT:搭建HTTP及HTTPS负载均衡集群 环境说明: 搭建NAT模式的HTTP负载集群 1. 配置好IP地址信息 2. DR上开启IP转发 3.DR上配置lvs-nat的转发机制 4 ...

  7. 【AHOI2009】中国象棋 题解(线性DP+数学)

    前言:这题主要是要会设状态,状态找对了问题迎刃而解. --------------------------- 题目描述 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可 ...

  8. 实验11——java线程模拟卖票

    package cn.tedu.demo; /** * @author 赵瑞鑫 E-mail:1922250303@qq.com * @version 1.0 * @创建时间:2020年7月31日 下 ...

  9. CAS(乐观锁)以及ABA问题

    https://blog.csdn.net/wwd0501/article/details/88663621独占锁是一种悲观锁,synchronized就是一种独占锁:它假设最坏的情况,并且只有在确保 ...

  10. Python 爬虫工程师必看,深入解读字体反爬虫

    字体反爬虫开篇概述 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人 ...