记录git rebase用法
git 是基于文件系统的版本管理工具,文档和详细介绍可以查看git
一.git commit --amend
如果你对文件做了修改需要和上一次的修改合并为一个change
git add .
git commit --amend
二.git rebase
在 Git 中整合来自不同分支的修改主要有两种方法:
merge以及rebase。 在本节中我们将学习什么是“变基”,怎样使用“变基”,并将展示该操作的惊艳之处,以及指出在何种情况下你应避免使用它 -- 参考https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA
git rebase -i HEAD~n
列出最近的几次change(从old -> new),并且左边包含可以进行的操作
1 pick 7a802ef test4
2 pick 0eaa6ba for #noTicket 1
3 pick 999e310 for #noTicket
4 pick 83bb011 for #ceshi
5
6 # Rebase c3ff658..83bb011 onto c3ff658 (4 command(s))
7 #
8 # Commands:
9 # p, pick = use commit
10 # r, reword = use commit, but edit the commit message
11 # e, edit = use commit, but stop for amending
12 # s, squash = use commit, but meld into previous commit
13 # f, fixup = like "squash", but discard this commit's log message
14 # x, exec = run command (the rest of the line) using shell
15 #
16 # These lines can be re-ordered; they are executed from top to bottom.
17 #
18 # If you remove a line here THAT COMMIT WILL BE LOST.
19 #
20 # However, if you remove everything, the rebase will be aborted.
21 #
22 # Note that empty commits are commented out
在commands里面包括了几个命令,简单介绍下
r, reword = use commit, but edit the commit message
简单的理解就是修改此commit的commit message
1 pick 7a802ef test4
2 r 0eaa6ba for #noTicket 1
3 pick 999e310 for #noTicket
4 pick 83bb011 for #ceshi
保存后进入编辑commit message模式
1 for #noTicket 1
2
3 测试
4
5 Change-Id: Ia0542f3b9292df45213c567948ff6f797858426f
保存退出后对应change的message就修改成功了
edit : use commit, but stop for amending 选取此commit,并且保存退出后提交的修改将amend此commit
1 pick 7a802ef test4
2 e 73c9c8f for #noTicket 1
3 pick 5cc2966 for #noTicket
4 pick 437ba25 for #ceshi
保存退出后:
gerrit-workshop git:(master) git rebase -i HEAD~4
Stopped at 73c9c8f1b281b8636ae990f58d1fba6260efb589... for #noTicket 1
You can amend the commit now, with git commit --amend Once you are satisfied with your changes, run git rebase --continue
之后做的修改再次amend后会基于这个commit
git add . 将所有修改提交到暂存区 git commit --amend 将暂存区的修改提交到本地仓库修改你刚才选中的change git rebase --continue 回到最初的状态
第三个 squash use commit, but meld into previous commit ,将这个change合并到上一次change中,并且会保留这个change的message,相当于将两个commit合并为一个
第四个 fixup 和squash一样,但是不会保留change的message
记录git rebase用法的更多相关文章
- git第七节---git merge和git rebase
# git merge和git rebase 都可以进行分支合并 #git merge 合并后保留记录两个分支的记录 #git rebase合并后会展示成一个分支的记录,另一个分支的提交实际生成了一个 ...
- git rebase和git merge的用法
http://softlab.sdut.edu.cn/blog/subaochen/2016/01/git-rebase%E5%92%8Cgit-merge%E7%9A%84%E7%94%A8%E6% ...
- git rebase的用法
改变基 一个git库,开发人员在master分支的Bcommit的时候,创建了一个dev分支,此时Bcommit是dev分支的基,然后分别进行两个分支的开发. 进行到master提交了Dcommit, ...
- Git merge && git rebase的用法
Git merge的用法: git merge Dev // Dev表示某分支,表示在当前分支合并Dev分支 git merge -m “Merge from Dev” Dev //-m可以加上m ...
- git rebase的使用: 合并多次commit记录; rebase一个分支的起点
合并多次commit记录: good:https://blog.csdn.net/csdlwzy/article/details/83379546 使用 git log 命令查看提交历史: 想要合并前 ...
- [转]【Git】rebase 用法小结
https://www.jianshu.com/p/4a8f4af4e803 本文主要参考 https://git-scm.com/docs/git-rebase rebase在git中是一个非常有魅 ...
- git命令之git rebase 的用法
rebase 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkout -b mywork origin 现在我 ...
- Git的用法
Git的用法 Git 的也可以理解为版本控制器.版本控制器(维基的解释):维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程.此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确 ...
- git rebase 的使用
rebase 在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase. 在本节中我们将学习什么是“rebase”,怎样使用“rebase”,并将展示该操作的惊艳之处,以及指 ...
随机推荐
- Python 绘制棋盘
import turtle pen = turtle.Pen() pen.speed(10) width = 30 # 格子宽度 count = 18 # 横向纵向格子数 o = width * co ...
- 给vmstat加上时间戳
vmstat -n 5 | awk '{print strftime("[%Y-%m-%d %H:%M:%S]"),$0}' 或者 vmstat -n 5 | awk '{ pri ...
- Cookies 、 Session 和 token 的区别
这篇文章写的 Cookies 和 Session的区别 比较详细,也很好理解,可以学习下:https://blog.csdn.net/axin66ok/article/details/6175522 ...
- Java基础-4变量与数据类型
变量:变量是Java程序中的一个基本存储单元.变量是一个标识符.类型及一个可选初始值的组合定义.所有的变量都有一个作用域,即变量在某一区域有效. 基本的变量声明方式如下: int a; float b ...
- [OpenCV]Mat类详解
http://blog.csdn.net/yang_xian521/article/details/7107786 Preface Mat:Matrix Mat类可以被看做是opencv中C++版本的 ...
- c++ object model
对一个结构体进行不断的封装后可以形成一个c++类,为此需要添加很多函数成员之类的代码,为此显示c++比c语言显得庞大并且迟缓,但是事实并不是这些 c++在布局和时间上的额外承担主要是由virtual引 ...
- 01、dos命令行的常用命令
cd 进入指定目录cd.. 返回上一级目录cd\ 退回盘符根目录dir 列出当前目录下的文件以及文件夹md 创建目录rd 删除目录del 删除文件cls ...
- 2-SAT学习整理
关于2-SAT 问题给出的证明和思路就不再赘述 核心是对于问题给出的条件建图,然后跑tarjan缩点 (在一个强联通分量里bool值是相同的) 看集合两个元素是否在一个强联通分量来判断是否合法 利用强 ...
- BZOJ2743 [HEOI2012]采花 【离线 + 树状数组】
题目 萧芸斓是Z国的公主,平时的一大爱好是采花. 今天天气晴朗,阳光明媚,公主清晨便去了皇宫中新建的花园采花.花园足够大,容纳了n朵花,花有c种颜色(用整数1-c表示),且花是排成一排的,以便于公主采 ...
- VMware DRS概述及功能
通过动态分配和平衡计算资源,使您的 IT 基础架构与业务目标一致.VMware Distributed Resource Scheduler (DRS) 可持续监控所有资源池的利用率,并根据业务需求在 ...