记录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学习总结---函数使用 and 生成器
# 函数使用 ### 生成器 - 使用场景 在使用列表时,很多时候我们不会一下子使用全部数据,通常都是一个一个使用,但是当数据量比较大的时候,定义一个大的列表将会是内容使用突然增大.为了解决此类问题, ...
- crmsh语法
.查看配置信息 crm(live)# configure crm(live)configure# show node node1 node node2 property cib-bootstrap-o ...
- android瀑布流照片墙实现代码详解
照片墙的实现,是需要往手机里面添加很多图片的,如果没有对资源进行合理的释放,程序很快就会出现OOM.所以需要用到LruCache算法来缓存图片. 1,首先是图片资源类,这个类中包含了很多图片链接. p ...
- Android使用adb命令查看CPU信息
Android中使用JNI编程的时候会需要编译出不同的SO文件,以供适配不同的机型. 例如: 由此需要查看不同机型的CPU信息. 使用ADB命令查看CPU信息命令如下: 1. adb shell 2. ...
- Angular & RxJS & Typescript
Angular & RxJS & Typescript https://www.wmnetwork.cc/d/?mid=75627 杭州经开区国际创博中心 https://www.w ...
- 第十七篇:django基础(二)
本篇内容 简单图书crm系统 编写views views:作为MVC中的C,接收用户的输入,调用数据库Model层和业务逻辑Model层,处理后将处理结果渲染到V层中去. app01/views.py ...
- poj 1062 昂贵的聘礼 (最短路径)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 33365 Accepted: 9500 Descriptio ...
- 简单的FreeBSD 的内核编译
简单的FreeBSD 的内核编译 删除并重新下载内核源码 删除自带的内核源码rm -rf /usr/src 下载内核源码wget https://download.freebsd.org/ftp/re ...
- Codeforces Round #428 (Div. 2) B
B. Game of the Rows(贪心) 题意: 有k种颜色,每种有\(a_i\)个,将这k种颜色放在一个\(n * 8格子里\) 放置规则不能出现两个不同颜色在相邻的格子里,相邻的定义为在同一 ...
- [从hzwer神犇那翻到的模拟赛题] 合唱队形
[问题描述] 学校要进行合唱比赛了,于是班主任小刘准备给大家排个队形. 他首先尝试排成m1行,发现最后多出来a1个同学:接着他尝试排成m2行,发现最后多出来a2个同学,……,他尝试了n种排队方案,但每 ...