把主干代码合并到分支_Git决断代码取舍

news/2024/7/4 9:16:09

现在特性分支上已合并好了贡献者的代码,是时候决断取舍了。本节将回顾一些之前学过的命令,以看清将要合并到主干的是哪些代码,从而理解它们到底做了些什么,是否真的要并入。

一般我们会先看下,特性分支上都有哪些新增的提交。比如在 contrib 特性分支上打了两个补丁,仅查看这两个补丁的提交信息,可以用 --not 选项指定要屏蔽的分支 master,这样就会剔除重复的提交历史:

$ git log contrib --not master
commit 5b6235bd297351589efc4d73316f0a68d484f118Author: Scott Chacon <schacon@gmail.com>Date: Fri Oct 24 09:53:59 2008 -0700
seeing if this helps the gem
commit 7482e0d16d04bea79d0dba8988cc78df655f16a0Author: Scott Chacon <schacon@gmail.com>Date: Mon Oct 22 19:38:36 2008 -0700
updated the gemspec to hopefully work better

还可以查看每次提交的具体修改。请牢记,在 git log 后加 -p 选项将展示每次提交的内容差异。

如果想看当前分支同其他分支合并时的完整内容差异,有个小窍门:

$ git diff master

虽然能得到差异内容,但请记住,结果有可能和我们的预期不同。一旦主干 master 在特性分支创建之后有所修改,那么通过 diff 命令来比较的,是最新主干上的提交快照。显然,这不是我们所要的。比方在 master 分支中某个文件里添了一行,然后运行上面的命令,简单的比较最新快照所得到的结论只能是,特性分支中删除了这一行。

这个很好理解:如果 master 是特性分支的直接祖先,不会产生任何问题;如果它们的提交历史在不同的分叉上,那么产生的内容差异,看起来就像是增加了特性分支上的新代码,同时删除了 master 分支上的新代码。

实际上我们真正想要看的,是新加入到特性分支的代码,也就是合并时会并入主干的代码。所以,准确地讲,我们应该比较特性分支和它同 master 分支的共同祖先之间的差异。

我们可以手工定位它们的共同祖先,然后与之比较:

$ git merge-base contrib master36c7dba2c95e6bbb78dfa822519ecfec6e1ca649
$ git diff 36c7db

但这么做很麻烦,所以 Git 提供了便捷的 ... 语法。对于 diff 命令,可以把 ... 加在原始分支(拥有共同祖先)和当前分支之间:

$ git diff master...contrib

现在看到的,就是实际将要引入的新代码。这是一个非常有用的命令,应该牢记。

!爆享折扣!

▼▼▼ 原价129 今日拼团仅需 ¥99 人专享首单限时优惠 ¥19.9!!! 但! 仅限前100个名额 ???

a0fecb0d0478270fe8c5d3c87524095a.png


http://www.niftyadmin.cn/n/3296588.html

相关文章

随手小记:创业瞎聊十点

郑昀锐推榜 20090805 1、业界谁出了事儿&#xff0c;谁被关了&#xff0c;你不要事后诸葛亮&#xff0c;有本事事前预测并且把话说到明面儿上。 2、别人郁闷不郁闷&#xff0c;跟你没关系&#xff0c;把你的梦想做好做强&#xff0c;不要去操别人的心。王兴们如何&#xff0c;还…

Qt httpserver 理解与使用

目录 概述 核心概念-路由 多线程处理 Qt Https Server 概述 Qt提供了创建简单web服务器的拓展模块&#xff0c;即qthttpserver 关于该模块的一些信息&#xff1a; Introducing the Qt Http Server QtHttpServer routing API 该模块的代码位于Qt官方的代码仓库中&#xff0c;但是…

elasticsearch性能测试工具rally深入详解

elasticsearch性能测试研究了很久&#xff0c;自己想过通过批量导入数据&#xff0c;然后记录时间&#xff0c;统计CPU、内存等变化&#xff0c;计算得出某个性能指标。但显然&#xff0c;数据量起伏不定&#xff0c;非常不准确。 研究发现&#xff0c;github上提供了rally作为…

表面粗糙度的基本评定参数是_表面粗糙度知识大合集,讲得明明白白

以上3门视频系列课全面上线&#xff0c;由GD&T实战专家夏忠定老师讲解&#xff0c;线下每门课几千元&#xff0c;线上价格更实惠&#xff0c;而且可以重复播放观看。扫描去千聊平台获取免费试听内容&#xff0c;更多课程内容请扫描咨询工作人员1&#xff0e; 什么称为表面粗…

一个与或非感知机

分享个python实例&#xff0c;自己写的一个感知机&#xff0c;仅供学习&#xff0c;自行调整参数&#xff0c;修改代码&#xff01; 效果图&#xff1a; 代码分享&#xff1a; import numpy as np import matplotlib.pyplot as pltclass Perceptron(object):""&q…

spring 和 springmvc 的父子容器关系浅析

以###问题### 在工程项目中&#xff0c;一开始将所有的附件路径定义在工具类中。使用 static String 的形式&#xff1b;于是就在项目的开发过程中产生不便&#xff0c;也使得配置属性不灵活&#xff0c;不利于模块化的管理信息和提高项目的可扩展性以及维护性。因此就将项目的…

Struts2 Get传值乱码过滤器

问题的原因在于get传值的时候&#xff0c;getParameter方法使用的是ISO8859-1编码&#xff0c;。修改一下此方法 &#xff08;1&#xff09;java类1&#xff1a;EncodeRequestWrapper.java public class EncodeRequestWrapper extends HttpServletRequestWrapper { private Ht…

拖拽drag_html5的拖放(drag和drop)

<p>请把 W3School 的图片拖放到矩形中&#xff1a;</p><div id"div1" ondrop"drop(event)" ondragover"allowDrop(event)"></div> <br /> <img id"drag1" src"/i/eg_dragdrop_w3school.gif&quo…