返回顶部
首页 > 资讯 > 精选 >如何使git提交记录变干净
  • 327
分享到

如何使git提交记录变干净

2023-07-05 07:07:50 327人浏览 独家记忆
摘要

本篇内容主要讲解“如何使git提交记录变干净”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使git提交记录变干净”吧!git rebase和git mergegit rebase,中文翻译为

本篇内容主要讲解“如何使git提交记录变干净”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使git提交记录变干净”吧!

git rebase和git merge

git rebase,中文翻译为“变基”,通常用于分支合并。既然提到了分支合并,那就一定离不开git merge这个命令。

相信每个新手程序员刚进入职场的时候,都会听到“xxx你把这个分支merge一下”这样的话。那么问题来了,假如你有6个程序员一起工作, 你就会有6个程序员的分支, 如果你使用merge, 你的代码历史树就会有六个branch跟这个主的branch交织在一起。

如何使git提交记录变干净

上图是 git merge 操作的流程示意图,Merge命令会保留所有commit的历史时间。每个人对代码的提交是各式各样的。尽管这些时间对于程序本身并没有任何意义。但是merge的命令初衷就是为了保留这些时间不被修改。于是也就形成了以merge时间为基准的网状历史结构。每个分支上都会继续保留各自的代码记录,主分支上只保留merge的历史记录。子分支随时都有可能被删除。子分子删除以后,你能够看到的记录也就是,merge某branch到某branch上了。这个历史记录描述基本上是没有意义的。

git rebase 中文翻译为“变基”,变得这个基指的是基准。如何理解这个基准呢?我们看一下下图。

如何使git提交记录变干净

我们可以看到经过变基后的feature分支的基准分支发生了变化,变成了最新的master。这就是所谓的“变基”。

通过上面的两张图可以很明显的发现,这两种合并分支的方式最大的区别在于,merge后的分支,会保留两个分支的操作记录,这在git commit log 树中会以交叉的形式保存。而rebase后的分支会基于最新的master分支,从而不会形成分叉,自始至终都是一条干净的直线。

关于 git rebasegit merge 的详细用法不在本文的介绍范围内,详情可以参考互联网上的其他资料。

在变基过程中,我们通常需要进行commit的修改,而这也为我们整理git记录提供了一个可选方案。

保持最近的几条记录整洁

假设我们有一个仓库,我在这个仓库里执行了4次提交,通过 git reflog 命令查看提交记录如下。

如何使git提交记录变干净

如果我们想将Commit-3、Commit-2和Commit-1的提交合并成一次提交(假设某次提交至改了一些pom文件),我们可以直接执行下面的命令

git rebase -i HEAD~3

-i 指的是 --interactiveHEAD~3 指的是最近三次commit。

当然我们也可以直接指定最新的一个想保留的 Commit的ID,在上面的例子中就是Commit-0的ID,因此我们也可以写成

git rebase -i d2b9b78

执行该命令后,我们会进入到这么如下一个界面:

如何使git提交记录变干净

这个界面是一个Vim界面,我们可以在这个界面中查看、编辑变更记录。

在看前三行之前,我们先来看一下第5行的命令加深一下我们对git rebase的认识。

如何使git提交记录变干净

翻译过来就是,将d2b9b78..0e65e22这几个分支变基到d2b9b78这个分支,也就是将Commit-3/2/1/0这几次变更合并到Commit-0上。

回到前面三行,这三行表示的是我们需要操作的三个 Commit,每行最前面的是对该 Commit 操作的 Command。而每个命令指的是什么,命令行里都已经详细的告诉我们了。

如何使git提交记录变干净

  • pick:使用该commit

  • squash:使用该 Commit,但会被合并到前一个 Commit 当中

  • fixup:就像 squash 那样,但会抛弃这个 Commit 的 Commit message

因此我们可以直接改成下面这样

如何使git提交记录变干净

这里使用fixup,而不是squash的主要原因是squash会让你再输入一遍commit的log,图省事的话,可以无脑选择fixup模式。

然后执行:wq退出vim编辑器,我们可以看到控制台已经输出Successful了。

如何使git提交记录变干净

这个时候我们再来看下log 记录,执行git log --oneline

如何使git提交记录变干净

于是最近三次的提交记录就被合并成一条提交记录了。

保持中间某些记录整洁

那如果不是最后的几个commit合并,而是中间连续的几个Commit记录,可以用上述方法整理合并吗?答案是可以的,只不过需要注意一下。

我们重新创建一个新的仓库

如何使git提交记录变干净

如果这次我们想将"third commit"和"second commit"合并为一个提交,其实和上面的方式一样,我们只需执行git rebase -i HEAD~3,然后将中间的提交改成fixup/squash模式即可,如下图所示:

如何使git提交记录变干净

之所以是HEAD~3,是因为我们要做的变更是基于first commit做的,因此我们也可以写成git rebase -i a1f3929

我们来看下更改完的commit log,如下图所示:

如何使git提交记录变干净

是不是就干掉了third commit了。

三行代码让git提交记录保持整洁

上面我们都是在本地的git仓库中进行的commit记录整理,但是在实际的开发过程中,我们基本上都是写完就直接push到远程仓库了,那应该如何让远程的开发分支也保持记录的整洁呢?

第一种做法是在push代码前就做在本地整理好自己的代码,但是这种做法并不适用于那种本地无法部署,需要部署到远程环境才能调试的场景。

这时我们只需要执行git push -f命令,将自己的修改同步到远程分支即可。

-f是force强制的意思,之所以要强制推送是因为本地分支的变更和远程分支出现了分歧,需要用本地的变更覆盖远程的。

而远程分支更新后,如果其他人也在这条分支上更改的话,还需要执行一个git pull命令来同步远程分支。

这里我们来总结下让git提交记录保持整洁的三行代码。

git rebase -i xxx
git push -f
git pull

❗️❗️❗️Tips:由于rebase和push -f是有些危险的操作,因此只建议在自己的分支上执行哦。

到此,相信大家对“如何使git提交记录变干净”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: 如何使git提交记录变干净

本文链接: https://lsjlt.com/news/350333.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使git提交记录变干净
    本篇内容主要讲解“如何使git提交记录变干净”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使git提交记录变干净”吧!git rebase和git mergegit rebase,中文翻译为...
    99+
    2023-07-05
  • idea如何查看git提交记录
    要查看git提交记录,可以使用以下git命令:1. git log:显示所有提交记录,并按照时间顺序列出每个提交的详细信息。默认情况...
    99+
    2023-10-18
    idea git
  • 如何写commit log记录及提交
    这篇文章主要介绍了如何写commit log记录及提交的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇如何写commit log记录及提交文章都会有所收获,下面我们一起来看看吧。安装插件在ID...
    99+
    2023-07-02
  • 怎么使用Git远程删除某个历史提交记录
    这篇文章主要介绍“怎么使用Git远程删除某个历史提交记录”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Git远程删除某个历史提交记录”文章能帮助大家解决问题。引言在开发中经常会遇到在本地测试...
    99+
    2023-07-02
  • Git如何获得一个干净的工作空间
    这篇文章主要介绍了Git如何获得一个干净的工作空间,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。获得一个干净的工作空间当我们实验一种思路,或者跟朋友讲代码时,我们可能会随意的...
    99+
    2023-06-27
  • Git代码如何提交
    这篇文章主要讲解了“Git代码如何提交”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Git代码如何提交”吧!1.首先需要下载git查看电脑是否安装git,打...
    99+
    2024-04-02
  • idea git如何撤回提交
    在使用git管理代码时,我们难免会提交一些错误的代码。如何撤回这些提交呢?本文将介绍如何使用git来撤回提交。git的撤销机制在git中,有两种修改历史记录的方法:修改提交的内容撤回提交第一种方法的风险较大,因为修改提交的内容会改变代码库中...
    99+
    2023-10-22
  • Git如何查看提交历史
    小编给大家分享一下Git如何查看提交历史,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!查看提交历史命令作用git log查看全部...
    99+
    2024-04-02
  • git如何撤销提交的commit
    git撤销提交的commit的方法:1、修改最后一次commit的内容,如果发现最后一次提交中有错误的内容,可以使用“git commit --amend”命令来修改;2、撤销某个commit的变更,如果需要完全撤销某个commit及其对应...
    99+
    2023-10-22
    Git commit
  • Java中如何使用Git记录日志?
    Git是一种流行的版本控制工具,可以追踪代码的变化并记录代码的历史。Java开发者可以使用Git来管理项目,并使用Git记录项目的日志。本文将介绍如何在Java中使用Git记录日志。 一、Git的基本概念 在开始介绍如何在Java中使用G...
    99+
    2023-07-06
    git 日志 编程算法
  • Git远程删除某个历史提交记录方法详解
    目录引言一、删除最后一次提交二、删除指定commit提交(非最后一次提交)引言 在开发中经常会遇到在本地测试的代码或者隐私信息,一不小心提交到了远程仓库,即便立即删除了再提交,但是上...
    99+
    2024-04-02
  • Git索引如何创建与提交
    这篇“Git索引如何创建与提交”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Git索引如何创建与提交”文章吧。 不...
    99+
    2023-06-16
  • 如何使用 Git 记录 PHP 项目日志?
    Git 是一款强大的版本控制工具,它可以帮助我们记录项目的历史变更,同时也是开源社区中广泛使用的工具。对于 PHP 开发者来说,如何使用 Git 记录项目日志是一个非常重要的问题。在本文中,我们将介绍如何使用 Git 记录 PHP 项目日志...
    99+
    2023-09-07
    npm git 日志
  • 如何使用Git提交部分修改的功能
    Git 是一种分布式版本控制系统,它非常适合团队协作或个人开发者来管理代码的修改历史。在开发中,经常会出现一种情况:需要将部分修改加入到提交中,而不是全部提交,这时就需要使用 Git 提交部分修改的功能了。Git 提交部分修改的方式有两种:...
    99+
    2023-10-22
  • 如何使用Git查看提交修改的方法
    Git是一个分布式版本控制系统,它能够记录项目代码的所有变化,方便多人协作开发。在Git中,提交修改是一个非常重要的操作,因为它可以记录一个阶段的代码变化,并且可以进行回溯和比对。下面,让我们来了解如何使用Git查看提交修改的方法。一、查看...
    99+
    2023-10-22
  • 如何在idea使用git stash暂存一次提交
    如何在idea使用git stash暂存一次提交?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。step1:切换到分支astep2: stash changesstep3:切换到...
    99+
    2023-06-06
  • 如何在 Git 中改变目录
    在进行代码管理和协同开发时,Git 是一个非常重要的工具。Git 提供了一系列命令来帮助我们进行代码版本管理,其中 cd 命令是一个常用的命令。本文将介绍如何在 Git 中改变目录。Git 改变目录的基本原理是通过切换分支来实现。每个分支都...
    99+
    2023-10-22
  • git如何修改历史记录
    本篇内容介绍了“git如何修改历史记录”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法:1、用“git commit --amend”命令...
    99+
    2023-06-26
  • Git如何创建分支提交远程
    小编给大家分享一下Git如何创建分支提交远程,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.创建本地分支git branch 分支名,例如:git branch...
    99+
    2023-06-09
  • git重命名文档后如何提交
    在使用Git进行项目开发中,我们经常需要重命名文件以便更好地组织和管理代码文件。但是,当我们重命名文件后,需要如何提交更改呢?在Git中,重命名文件其实是一次对文件的删除和添加操作。当我们使用git mv 命令来重命名文件时,Git会自动执...
    99+
    2023-10-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作