使用场景

以master为准创建分支dev_A 开发,开发过程中,master主分支有新的功能被提交进来,需要将这部分代码align到dev_A的版本.

这里仅列举这一个场景,rebase 还可以修改commit message 请参照我的另一篇文章

理解rebase

rebase 字典翻译为变基。我的理解是:改变基准,以早期的master为基准创建的dev_A,后来master代码有变,我们需要重新以最新的master为基准同步代码,可以理解成改变dev_A的基准版本为最新的master,这样是不是好理解一些呢?

操作步骤

1 git切换至当前开发版本

git checkout dev_A

切换到当前开发版本是,也就是 dev_A

2 list需要变基到的branch,不一定是master

 git branch -a

查看所有分支,根据列表中的branch 基准branch

3 执行rebase变基

git rebase master 

这里以master为基准,如果是其他版本,git rebase branchname

如果dev_A中存在没有提交的代码,git会提示:

can't rebase : you have unstaged changes.

Please stash or commit them .

可以根据自己的情况选择执行stash 或者 commit,这里stash为例:

git stash 

stash暂存本地仓库,rebase 完成之后再使用 git stash pop 取回这一部分代码。

如果没有冲突的情况

比如dev_A做的是A模块,master 代码变更进去的是B模块,也假设没有其他共同使用的文件

git rebase master 这一句命令就已经完成了我们的rebase操作,我们dev_A 已经包含了master后来更新进去的文件。

存在冲突的情况

这里我们着重说明存在冲突的情况

解决冲突

git 会提示我们有哪些文件冲突,我们可以在代码编辑器中查看冲突标识符

<<<<<HEAD

HEADcode

=======

Othercode

>>>>>>>>>>

两个冲突的版本用连续的等号=隔开,便于对比两个版本代码,手动修改使用哪个版本的代码。

标记冲突已解决
git add .

修改完成之后 使用git add . 告诉git 冲突已被全部解决,也可以一个文件一个文件解决之后使用 git add filepath, 这样比较麻烦

继续rebase 操作
git rebase --continue 
提交到远程分支
git pull -f

master的代码已经被同步到当前本版dev_A的版本库了。

如果有stash的文件,使用如下命令取回代码

git stash pop

当前分支拉取master的操作 git rebase master的更多相关文章

  1. 将远程git仓库里的指定分支拉取到本地(本地不存在的分支

    将远程git仓库里的指定分支拉取到本地(本地不存在的分支) https://www.cnblogs.com/hamsterPP/p/6810831.html

  2. fnb2b分支拉取注意事项

    1. 大B分支拉取以后不要忘记把index.php中dev环境改为 $save_url = "http://dev-b2b.dev1.fn/"; 2. 大B分支拉取后,记得/bas ...

  3. git分支拉取

    假设你已经配置好了各种SSH Key之类并熟悉基本的git创建分支.提交分支命令.比如共有2个分支,自己在一台未配置origin电脑上想要拉取某个分支(dev)到本地.步骤如下:1.新建git项目 与 ...

  4. IDEA 创建git 分支 拉取分支

        此时只是在本地创建好了分支,修改源代码后add,commit将本地分支提交到远程仓库          分支已创建,其它成员此时就可以从git拉分支

  5. git初始化第一次拉取线上操作

    git: 所有的filename都代表文件名称 一次:git clone 地址    第一步:更新 git pull   第二步:查看修改状态 git status   第三步:根据修改状态查看需要添 ...

  6. 使用git客户端免密码进行拉取等相关操作

    前言 如果使用git客户端进行pull或push操作时,遇到有权限的项目总要输入用户名密码,真的是太麻烦了,因此需要稍作修改,然后就可以免密码操作啦! 方法: 进入C盘->用户->你的主机 ...

  7. git如何将一个远程仓库的某个分支拉取到当前分支?

    答: git pull <remote_repository_url> <branch_name> 例如: git clone https://github.com/lede- ...

  8. git 指定从其他分支拉取commit

    git cherry-pick commit-id  (github 上的短号)

  9. git rebase(变基)操作

    1.rebase(变基)操作 注意事项:rebase 改变分支的根源,绝对不要在与其他人共享的分支上进行操作rebase黄金法则:绝不要在公共的分支上使用它! 1.1git merge 与 git r ...

随机推荐

  1. go基础——if语法

    package main import "fmt" /* 条件语句:if 注意点: 1.if后的{,要与if条件写在同一行: 2.else要跟在}之后,不能另起一行: 3.if和e ...

  2. 07.python语法入门--流程控制

    分支结构 什么是分支结构 为什么要用分支结构 如何使用分支结构 if语法 if应用案例 循环结构 什么是循环结构 为什么要用循环结构 如何使用循环结构 while循环语法 while循环应用案例 fo ...

  3. 原来VIM还可以这样玩

    文章目录 配置文件vimrc vim 状态栏 状态栏配置内容 状态栏常用信息 显示状态栏 终端安全色 vimrc 配置文件 推荐 vi/vim命令大全 vim参阅 配置文件vimrc 在vim文件中执 ...

  4. 五、MyBatis缓存初体验

    缓存就是内存中的数据,常常来自对数据库查询结果的保存,使用缓存, 我们可以避免频繁的与数据库进行交互, 进而提高响应速度. 一级缓存初体验(session,默认打开) 同一查询执行两次以上:selec ...

  5. 详细介绍Windows下也能够使用osw性能升级历史

    1.Windows系统历史性能分析困难背景 在Linux/Unix上.要追朔历史性能,一般採用部署nmon进行性能监控採集与存储的方式实现.可是却没有在Windows上的版本号. Windows系统假 ...

  6. SSM整合时页面出现$ is not defined

    $ is not defined ,有以下几种可能: 1.没有导入jQuery的jar包 2.jQuery的jar包放进了WEB-INF里,jQuery的jar包最好放在WebContent下,跟WE ...

  7. RFC2544学习频率“Learning Frequency”详解—信而泰网络测试仪实操

    在RFC2544中, 会有一个Learning Frequency的字段让我们选择, 其值有4个, 分别是learn once, learn Every Trial, Learn Every Fram ...

  8. IPv6 OSPFv3路由协议测试——信而泰网络测试仪实操

    关键词 IPv6; OSPFv3; OSPFv2. 前言:在网络部署中,动态路由协议是重要的组成部分.良好的路由协议,是保证网络可靠.稳定运行的基础.为了适应IPv6协议栈的变化,OSPFv3协议在保 ...

  9. 想找好用的BI软件?看这一篇就够了:2021年好用的BI软件推荐

    很多厂商活跃在商业智能(下面称BI)领域.事实上,能够满足用户需要的BI产品和方案必须建立在稳定.整合的平台之上,该平台需要提供用户管理.安全性控制.连接数据源以及访问.分析和共享信息的功能.那么,有 ...

  10. 关于GDPR的六大理解

    通用数据保护条例(GDPR)于2018年5月生效,根据法律条文,英国几乎所有企业都需要遵守该规定.然而,人们对法规本身及其对组织的意义仍存在一些误解.这可能会导致一些错误的决定. 通用数据保护条例(G ...