【Git系列】Git 提交历史分析:深入理解`git log`命令

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术,jvm,并发编程 redis,kafka,Spring,微服务等
    • 常用开发工具系列:常用的开发工具,IDEA,Mac,Alfred,Git,typora 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 新空间代码工作室:提供各种软件服务,承接各种毕业设计,毕业论文等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

    • Git 基础:`git log`命令
    • 参数详解
      • `-2`参数:显示最近的两条提交
      • `--no-merges`参数:忽略合并提交
      • `--pretty=format:'%ae'`参数:自定义显示格式
    • 组合使用:`git log -2 --no-merges --pretty=format:'%ae'`
    • 实际应用场景
      • 快速定位问题
      • 代码审查
      • 项目统计
    • 高级用法
    • 深入理解 Git 提交
    • 优化工作流程

在现代软件开发中,版本控制是核心环节之一,它帮助开发者管理代码变更、协作开发以及维护项目历史。Git 作为当前最流行的分布式版本控制系统,提供了丰富的命令来实现这些功能。其中,git log命令是查看项目提交历史的常用工具。
在这里插入图片描述

Git 基础:git log命令

git log是 Git 中查看提交历史的命令。通过这个命令,开发者可以查看项目从创建到现在的所有提交记录,包括每次提交的作者、日期、提交信息以及代码变更等。它是开发者日常开发中使用频率极高的命令之一。

参数详解

-2参数:显示最近的两条提交

-2参数是一个简单的数字参数,它告诉 Git 只显示最近的两条提交记录。这对于快速查看最新的提交非常有用,尤其是在需要快速了解最近代码变更情况时。

--no-merges参数:忽略合并提交

合并提交(merge commits)是 Git 在合并分支时自动创建的提交,它记录了两个分支的合并点。--no-merges参数的作用是告诉 Git 在显示提交历史时忽略这些合并提交,只显示普通提交。这在某些情况下非常有用,比如当你只关心代码的直接变更,而不关心分支合并的历史时。

--pretty=format:'%ae'参数:自定义显示格式

--pretty=format参数允许用户自定义git log输出的格式。'%ae'是一个占位符,代表作者(author)的电子邮件地址。通过这个参数,用户可以指定git log只显示提交的作者电子邮件地址,而不是完整的提交信息。

组合使用:git log -2 --no-merges --pretty=format:'%ae'

将上述三个参数组合使用,git log -2 --no-merges --pretty=format:'%ae'命令的作用是显示最近的两条非合并提交的作者电子邮件地址。这个命令常用于快速查看最近两次提交的作者信息,尤其是在多人协作的项目中,快速了解最近代码变更的负责人。

实际应用场景

快速定位问题

在多人协作的项目中,快速定位问题的责任人是非常重要的。通过git log -2 --no-merges --pretty=format:'%ae'命令,项目负责人可以迅速查看最近两次提交的作者电子邮件地址,从而快速找到可能引入问题的责任人,进行沟通和问题解决。

代码审查

在代码审查(Code Review)过程中,审查者可能需要快速了解最近提交的代码是由谁编写的。使用这个命令,审查者可以快速获取作者的电子邮件地址,进而查看作者的提交记录,进行更深入的代码审查。

项目统计

在进行项目统计时,比如计算每个开发者的代码贡献量,可以通过这个命令快速获取最近提交的作者电子邮件地址,作为统计的起点。

高级用法

虽然git log -2 --no-merges --pretty=format:'%ae'命令已经非常实用,但 Git 的git log命令还有很多高级用法,比如:

  • 使用--graph参数以图形化的方式展示分支和合并历史。
  • 使用--since--until参数来限定时间范围,查看特定时间段内的提交记录。
  • 使用--author参数来过滤特定作者的提交。
  • 使用--grep参数来搜索提交信息中包含特定关键字的提交。

深入理解 Git 提交

Git 的提交是版本控制中的基本单元,每个提交都包含了以下信息:

  • 作者(Author):提交的创建者。
  • 提交者(Committer):实际将代码提交到仓库的人。
  • 提交信息(Commit Message):描述提交内容的简短信息。
  • 提交哈希(Commit Hash):提交的唯一标识符。
  • 父提交(Parent Commit):当前提交的直接前一个提交。

优化工作流程

掌握git log命令及其参数,可以帮助开发者更高效地进行版本控制和项目管理。以下是一些优化工作流程的建议:

  1. 定期查看提交历史:定期使用git log命令查看项目的历史变更,可以帮助开发者了解项目进展和潜在问题。
  2. 利用分支进行开发:使用分支进行功能开发和修复,可以减少主分支的负担,提高开发效率。
  3. 代码审查:通过代码审查,可以提高代码质量,减少错误和缺陷。
  4. 持续集成/持续部署(CI/CD):自动化测试和部署流程,可以提高开发速度和软件质量。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/482078.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第144场双周赛:移除石头游戏、两个字符串得切换距离、零数组变换 Ⅲ、最多可收集的水果数目

Q1、[简单] 移除石头游戏 1、题目描述 Alice 和 Bob 在玩一个游戏,他们俩轮流从一堆石头中移除石头,Alice 先进行操作。 Alice 在第一次操作中移除 恰好 10 个石头。接下来的每次操作中,每位玩家移除的石头数 恰好 为另一位玩家上一次操作…

Python parsel库学习总结

parsel库是Python中用于解析HTML文件的库&#xff0c;其能通过CSS选择器、xpath、正则表达式来定位html中的元素。 通过css选择器定位元素 from parsel import Selectorhtml """ <html><head><a class"option1">这是一个伪html片…

【HarmonyOS学习日志(11)】计算机网络之概念,组成和功能

文章目录 计算机网络概念计算机网络&#xff0c;互连网与互联网的区别计算机网络互连网互联网&#xff08;因特网&#xff0c;Internet&#xff09; 计算机网络的组成和功能计算机网络的组成从组成部分看从工作方式看从逻辑功能看 计算机网络的功能数据通信资源共享分布式处理提…

Vue3 开源UI 框架推荐 (大全)

一 、前言 &#x1f4a5;这篇文章主要推荐了支持 Vue3 的开源 UI 框架&#xff0c;包括 web 端和移动端的多个框架&#xff0c;如 Element-Plus、Ant Design Vue 等 web 端框架&#xff0c;以及 Vant、NutUI 等移动端框架&#xff0c;并分别介绍了它们的特性和资源地址。&#…

视觉语言动作模型VLA的持续升级:从π0之参考基线Octo到OpenVLA、TinyVLA、DeeR-VLA、3D-VLA

第一部分 VLA模型π0之参考基线Octo 1.1 Octo的提出背景与其整体架构 1.1.1 Octo的提出背景与相关工作 许多研究使用从机器人收集的大量轨迹数据集来训练策略 从早期使用自主数据收集来扩展策略训练的工作[71,48,41,19-Robonet,27,30]到最近探索将现代基于transformer的策略…

k8s--pod创建、销毁流程

文章目录 一、pod创建流程二、pod销毁流程 一、pod创建流程 1、用户通过kubectl或其他api客户端提交pod spec给apiserver,然后会进行认证、鉴权、变更、校验等一系列过程2、apiserver将pod对象的相关信息最终存入etcd中,待写入操作执行完成,apiserver会返回确认信息给客户端3、…

相同的二叉树

给你两棵二叉树的根节点 p 和 q &#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3], q [1,2,3] 输出&#xff1a;true示例 2&…

算法妙妙屋-------1.递归的深邃回响:全排列的奇妙组合

全排列的简要总结 全排列&#xff08;Permutation&#xff09;是数学中一个经典的问题&#xff0c;指的是从一组元素中&#xff0c;将所有元素按任意顺序排列形成的所有可能序列。 特点 输入条件&#xff1a; 给定一组互异的元素&#xff08;通常为数组或字符串&#xff09;。…

【Rust】unsafe rust入门

这篇文章简单介绍下unsafe rust的几个要点 1. 解引用裸指针 裸指针其实就是C或者说C的指针&#xff0c;与C的指针不同的是&#xff0c;Rust的裸指针还是要分为可变和不可变&#xff0c;*const T 和 *mut T&#xff1a; 基于引用创建裸指针 let mut num 5;let r1 &num …

什么是人工智能大模型?

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于人工智能大模型的相关内容&#xff01; …

基于深度学习和卷积神经网络的乳腺癌影像自动化诊断系统(PyQt5界面+数据集+训练代码)

乳腺癌是全球女性中最常见的恶性肿瘤之一&#xff0c;早期准确诊断对于提高生存率具有至关重要的意义。传统的乳腺癌诊断方法依赖于放射科医生的经验&#xff0c;然而&#xff0c;由于影像分析的复杂性和人类判断的局限性&#xff0c;准确率和一致性仍存在挑战。近年来&#xf…

【IMF靶场渗透】

文章目录 一、基础信息 二、信息收集 三、flag1 四、flag2 五、flag3 六、flag4 七、flag5 八、flag6 一、基础信息 Kali IP&#xff1a;192.168.20.146 靶机IP&#xff1a;192.168.20.147 二、信息收集 Nmap -sP 192.168.20.0/24 Arp-scan -l nmap -sS -sV -p- -…

MySQL 复合查询

实际开发中往往数据来自不同的表&#xff0c;所以需要多表查询。本节我们用一个简单的公司管理系统&#xff0c;有三张表EMP,DEPT,SALGRADE 来演示如何进行多表查询。表结构的代码以及插入的数据如下&#xff1a; DROP database IF EXISTS scott; CREATE database IF NOT EXIST…

理解Java集合的基本用法—Collection:List、Set 和 Queue,Map

本博文部分参考 博客 &#xff0c;强烈推荐这篇博客&#xff0c;写得超级全面&#xff01;&#xff01;&#xff01; 图片来源 Java 集合框架 主要包括两种类型的容器&#xff0c;一种是集合&#xff08;Collection&#xff09;&#xff0c;存储一个元素集合&#xff08;单列…

【看海的算法日记✨优选篇✨】第三回:二分之妙,寻径中道

&#x1f3ac; 个人主页&#xff1a;谁在夜里看海. &#x1f4d6; 个人专栏&#xff1a;《C系列》《Linux系列》《算法系列》 ⛰️ 一念既出&#xff0c;万山无阻 目录 &#x1f4d6;一、算法思想 细节问题 &#x1f4da;左右临界 &#x1f4da;中点选择 &#x1f4da;…

[CTF/网络安全] 攻防世界 upload1 解题详析

[CTF/网络安全] 攻防世界 upload1 解题详析 考察文件上传&#xff0c;具体原理及姿势不再赘述。 姿势 在txt中写入一句话木马<?php eval($_POST[qiu]);?> 回显如下&#xff1a; 查看源代码&#xff1a; Array.prototype.contains function (obj) { var i this.…

网络安全运行与维护 加固练习题

1. 提交用户密码的最小长度要求。 输入代码: cat /etc/pam.d/common-password 提交答案: flag{20} 2.提交iptables配置以允许10.0.0.0/24网段访问22端口的命令。 输入代码: iptables -A INPUT -p tcp -s 10.0.0.0/24 --dport 22 -j ACCEPT 提交答案: flag{iptables -A I…

PID模糊控制算法(附MATLAB仿真程序)

一、基本原理 PID模糊控制算法是一种将传统PID控制与模糊逻辑相结合的控制策略。它利用模糊逻辑处理不确定性和非线性问题的能力&#xff0c;以提高控制系统的性能。以下是PID模糊控制算法的基本原理&#xff1a; 1.1. **误差和误差变化率的计算**&#xff1a; - 首先&…

【leetcode100】螺旋矩阵

1、题目描述 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5] 2、初始思路 2.1 思路 定义上下左右…

2024.11.29(单链表)

思维导图 声明文件 #ifndef __LINKLIST_H__ #define __LINKLIST_H__#include <myhead.h>typedef char datatype; //数据元素类型 //定义节点类型 typedef struct Node {union{int len; //头节点数据域datatype data; //普通节点数据域};struct Node *next; //指针域…