聊下git merge --squash

简介: 你经常会面临着将dev分支或者很多零散的分支merge到一个公共release分支里。 但是有一种情况是需要你处理的,就是在你的dev的分支里有很多commit记录。而这些commit是无需在release里体现的。

你经常会面临着将dev分支或者很多零散的分支merge到一个公共release分支里。

但是有一种情况是需要你处理的,就是在你的dev的分支里有很多commit记录。而这些commit是无需在release里体现的。

develop 主分支

1

develop主分支最近的一个commit是”fix imageprint bug.”。我们拉出一个分支进行项目开发,里面会有很多commit记录。

git checkout -b develop_newfeature_ImportDataInterface origin/develop

develop_newfeature_ImportDataInterface 分支的commit log是和develop是一模一样的。我们添加点修改commit。

2

现在我们需要将develop_newfeature_ImportDataInterface 分支的commit merge到develop主分支里去。在合并进develop的时候我们希望在develop里的commit log里只看见一次commit,而且这个commit的message不是很随意的,而是符合正规提交流程的约定格式的,比如,”develop:finished import data interface”。

我们就需要借助git merge –squash命令参数来重新准备提交。(这是一个明确的merge操作不同于git rebase,不要搞混淆这两个命令的作用。)

git merge --squash develop_newfeature_ImportDataInterface

Updating cc1fea6..e6fb522
Fast-forward
Squash commit -- not updating HEAD
1.txt | 3 +++
1 file changed, 3 insertions(+)

--squash 会暂停commit提交。要不然一个merge会自动提交commit。

3

1.txt文件是我们修改的文件,它现在待commit。现在我们只需要重新提交即可。

git commit -m'develop:finished import data interface'

4

这样每次merge就会很清爽,一目了然,就算回头reset也方便。

 

作者:王清培

出处:http://www.cnblogs.com/wangiqngpei557/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面

目录
相关文章
|
5月前
|
安全 开发工具 git
蓝易云 - git rebase和merge区别
在选择使用Merge还是Rebase时,需要根据具体的工作流程和团队的规定来决定。一般来说,如果你想保持完整的历史记录并且避免可能的冲突,你应该使用Merge。如果你想要一个干净的、线性的历史记录,你可以使用Rebase。
53 4
|
开发工具 git
git:亲测体验rebase与merge
git:亲测体验rebase与merge
105 0
|
开发工具 git
一文彻底搞懂 git merge
考虑下面的情况: ![](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/neweditor/3edfb5df-9a6f-49c5-b615-f51287fffe7c.png) `A 1:1 2:2`代表`节点A`包含两个文件,`文件1`的内容是`1`,`文件2`的内容是`2`。 `B`、`C`节点分别做了修改,现在需要合并,把`C`m
347 0
一文彻底搞懂 git merge
|
开发工具 git
【Git】一文带你入门Git分布式版本控制系统(创建合并分支、解决冲突)
【Git】一文带你入门Git分布式版本控制系统(创建合并分支、解决冲突)
132 0
【Git】一文带你入门Git分布式版本控制系统(创建合并分支、解决冲突)
|
开发工具 git
git合并代码原理
git合并代码原理
|
开发工具 git
【遇坑记实 一】团队开发中不要随意git merge别的分支
【遇坑记实 一】团队开发中不要随意git merge别的分支
292 0
|
安全 开发工具 git
在开发过程中使用git rebase还是git merge,优缺点分别是什么?
在开发过程中使用git rebase还是git merge,优缺点分别是什么?
300 0
|
开发工具 git
git merge和git rebase异同
git merge和git rebase异同
|
开发工具 git
Git_IDEA集成git_合并分支(冲突合并)
Git_IDEA集成git_合并分支(冲突合并)
183 0
Git_IDEA集成git_合并分支(冲突合并)
|
开发工具 git
Git 中 merge 和 rebase 的区别
$ git pull --rebase和$ git pull区别 是git fetch + git merge FETCH_HEAD的缩写,所以默认情况下,git pull就是先fetch,然后执行merge操作,如果加-rebase参数,就是使用git rebase代替git merge 。
27878 0

相关实验场景

更多