git commit 合并
日常 git 管理代码的时候,经常因为因为一些小的代码改动而进行一次 git commit , 但是这样造成的后果就是小的 git commit 很多很杂。
今天特意的研究了一些 git commit 的合并方法。
首先,使用
git log
看 log 信息。
root@aplex:/home/cmi_at101/test/filesystem_test/cmi_at101_filesystem# git log
commit 93ba40a42595edcbdb5adbab33d8c2dc5409f330
Author: root <root@aplex.(none)>
Date: Mon Nov 13 16:45:55 2017 +0800
ADD empty directory
commit 0e35ffa5bdb248464ff2c6587b33206e021d86fc
Author: root <root@aplex.(none)>
Date: Mon Nov 13 16:37:43 2017 +0800
CMI-AT1010 filesystem init
这里我们看到有两个 git commit , HASH Z值分别为 93ba40a4259 和 0e35ffa5bdb
这里,我们 使用
git rebase -i HEAD~1
进行合并
squash 93ba40a ADD empty directory # 将要合并的 commit
# Rebase 0e35ffa..93ba40a onto 0e35ffa
#
# Commands:
# p, pick = use commit 使用这个commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
Init CMI-AT101 filesystem # commit message
保存退出
新的commit 生成
如果操作有误,可以使用
git rebase --abort
进行恢复
root@aplex:/home/cmi_at101/test/filesystem_test/cmi_at101_filesystem# git log
commit 0e35ffa5bdb248464ff2c6587b33206e021d86fc
Author: root <root@aplex.(none)>
Date: Mon Nov 13 16:37:43 2017 +0800
CMI-AT1010 filesystem init
root@aplex:/home/cmi_at101/test/filesystem_test/cmi_at101_filesystem# git rebase --abort
root@aplex:/home/cmi_at101/test/filesystem_test/cmi_at101_filesystem# git log
commit 93ba40a42595edcbdb5adbab33d8c2dc5409f330
Author: root <root@aplex.(none)>
Date: Mon Nov 13 16:45:55 2017 +0800
ADD empty directory
commit 0e35ffa5bdb248464ff2c6587b33206e021d86fc
Author: root <root@aplex.(none)>
Date: Mon Nov 13 16:37:43 2017 +0800
CMI-AT1010 filesystem init
经验证,这篇文章有点小问题,让我有时间再更正一下
git commit 合并的更多相关文章
- git commit 合并到指定分支
1. 将指定的commit合并到当前分支 git cherry-pick commit_id 2. 合并多个连续 commit 到指定分支 假设需要合并 devlop 上从 fb407a3f 到 9 ...
- git cherry-pick合并某个commit
1.使用方法及其作用 git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作(操作的对象是commit).例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开 ...
- git commit -am 合并操作
二,合并的操作 1, 首先按需修改文件 echo >> lz66303.txt 2, 然后按需提交被修改的文件到HEAD缓存区,并把这个修改记录到分支中 git commit -am&qu ...
- Git自动化合并多个Commit
目录 git rebase逻辑 git editor的修改 处理git-rebase-todo文件 Python实现 当我们有多个commit或者从开源处拿到多个commit时,想合成一个commit ...
- git将多个commit合并成一个
1. 查看提交历史(最近10个) git log - 2. 回到前面第十个commit,且将后面九个commit提交的内容状态改为未提交 git reset commitID(第十个commit的ID ...
- git只合并某一个分支的某个commit
第一种情况:只合并一个commit git checkout develop-hbb git cherry-pick 7c32be61 以上,7c32be61是develop上的一个fix bug的c ...
- git将多个commit合并成一个新的commit
问题: 有以下commit: 323udd ede234 6e7s6e 要合并第一个和第二个commit 方法有二: 方法一 使用git rebase -i hash-id,-i表示以交互模式进行co ...
- [转] git merge 将多个commit合并为一条之--squash 选项
[FROM] https://blog.csdn.net/themagickeyjianan/article/details/80333645 1.一般的做法(直接git merge) Git相对于C ...
- 巧用 git rebase 合并多个 commit。
一.为什么需要合并多个 commit 呢? 有时候,我们开发一个功能. 修修补补 commit 了很多次,过多的 commit 会显得很复杂. 不够直观,不能比较清晰查看那些 commit 是对应 ...
随机推荐
- [译]Spring Boot 构建一个RESTful Web服务
翻译地址:https://spring.io/guides/gs/rest-service/ 构建一个RESTful Web服务 本指南将指导您完成使用spring创建一个“hello world”R ...
- win10 docker 安装部署
Docker 安装教程: https://blog.csdn.net/hunan961/article/details/79484098 安装docker前需要首先开启虚拟服务:重启电脑-->F ...
- C#基础课程之三循环语句
for循环: ; i < ; i++) { Console.WriteLine("执行"+i+"次"); } while循环: while (true) ...
- 看MySQL官方文档的示例SQL有感
[背景] 周末比较闲,我这个人又没有什么爱好,当然了读书除外:前一些天我一个同事说:“你一个dba想去写一本“django”书,合适吗?” 我想也是,一个人不能忘了本,所以MySQL还是要好好的搞一搞 ...
- Django form入门详解--1
form在django中的作用: 1.可以用于自动生成form的html 2.数据校验 3.与model一在一起使用.可以大的方便数据驱动型网站的开发 编程中有许多的东西是“不可描述”的.只有动手去 ...
- 双系统(win8.1+ubuntu14.04)删除win下分区导致grub rescue解决方案
几个grub rescue下的命令的含义: set 设置环境变量 ls 查看设备 insmod 加载模块 root 指定用于启动系统的分区 prefix 设定grub启动路径 操作流程: 1. 先使 ...
- nginx加载字体文件的时候报错
nginx 下加载配置 location ~* \.(eot|ttf|ttc|otf|eot|woff|woff2|svg)$ { root /web/static_jr ...
- 有关 Windows 10 中“适用于 Linux 的 Windows 子系统(Beta)”
1.如何启用?(未来应该可从应用商店中直接安装) 在"控制面板"的"启用或关闭 Windows 功能"中进行勾选安装.(安装完成后需要重新启动) 2.然后呢? ...
- 关于JAVA的参数列表传值的问题
java传参和C++传指针不一样.它不能传入一个参数,再用这个参数去new一个新的object,再调用者看来,这没用. java中传的参数是stack上复制的值,如果传的是object,那么传的是该o ...
- Atitit 项目界面h5化静态html化计划---vue.js 把ajax获取到的数据 绑定到表格控件 v2 r33.docx
Atitit 项目界面h5化静态html化计划---vue.js 把ajax获取到的数据 绑定到表格控件 v2 r33.docx 1. 场景:应用在项目列表查询场景下1 1.1. 预计初步掌握vue ...