git-显示顺序与提交顺序不一致的问题

问题流程

a分支

  1. 初始记录:分支的提交记录是 c1 -> c2 -> c3
  2. 第一次修改提交记录但并未push:a1(20:18)
  3. 第二次修改提交记录:a2(20:20)

b分支

  1. 初始记录: c1 -> c2 -> c3

  2. 第一次修改提交记录但并未push:b1(20:17)

  3. 第二次修改提交记录:b2(20:19)

现在将b分支合并到a分支

期望顺序: c1 -> c2 -> c3 -> a1(20:18)-> a2(20:20)-> b1(20:17)-> b2(20:19)

但实际结果却是: c1 -> c2 -> c3 -> b1(20:17)-> a1(20:18)-> b2(20:19)-> a2(20:20)

问题和分析

为什么呢?

答:因为显示是按时间排序的,并不是按照提交顺序显示的。这种情况显示顺序和提交顺序是不一致的,并不影响代码的合并顺序,虽然我们查看所有记录时显示是:c1 -> c2 -> c3 -> b1(20:17)-> a1(20:18)-> b2(20:19)-> a2(20:20),当时当我们执行一下命令:

bash 复制代码
git log --oneline --graph --all --decorate

查看提交记录时,记录仍然是按照我们的预期顺序: c1 -> c2 -> c3 -> a1(20:18)-> a2(20:20)-> b1(20:17)-> b2(20:19),因此并不影响代码,仅影响显示顺序,所以并不用担心。

此时不要用以下命令进行查看提交记录,因为它默认是按照提交的时间顺序从最新到最旧排序的。

bash 复制代码
git log -n 30 --pretty=oneline

解决方案

怎么解决这种呢?

方案一:改变显示排序规则。

方案二:规范化自己的开发流程。

相关推荐
挖掘狂人1 天前
Git 从 0 到 1:用一个小项目走完 add / commit / reset / merge / rebase / push
git·后端·github
codigger1 天前
Git 三区域模型:把 add、commit、reset、merge 一次讲透
git·github·编程·编程语言
水饺编程1 天前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
idanzk1 天前
Git 推送 GitHub 报 SSL_READ /src refspec main 不匹配 完整踩坑记录
git·github·ssl
星恒随风1 天前
Linux开发工具详解(二):Git版本控制、GitHub协作与GDB调试实战
linux·笔记·git·学习·github
寺中人2 天前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
酬谢神明则必安2 天前
git学习记录01
linux·git·学习
lingchen19062 天前
版本控制 Git源代码项目管理
git
虫无涯2 天前
Coverity 如何结合 GJB8114-2013使用?
git·单元测试·嵌入式测试·coverity·静态扫描
喵本喵叁肆2 天前
Git 深度解读:从对象模型到分支指针,把版本控制的内核讲透
git