『现学现忘』Git后悔药 — 34、git commit –amend 命令

这是我们Git中的第三种后悔药。

1、 git commit --amend 命令说明

git commit --amend 命令:也叫追加提交,它可以在不增加一个新的 commit的情况下,将新修改的代码追加到前一次的 commit中。

使用此命令的好处是避免了许多无用的提交。

[En]

The advantage of using this command is to avoid many useless submissions.

说明:

  • 如果自上次提交以来,你还未做任何修改(例如,在上次提交后马上执行了此命令),那么快照会保持不变(不产生新的 commit),而修改的只是提交信息。
  • 或者你提交后发现忘记了暂存某些需要的修改,可以将该文件添加到暂存区,然后在使用 git commit --amend 命令进行追加提交。

常用参数

  • --no-edit:使用选定的提交消息而无需启动编辑器。(追加提交,且不修改 message信息。)
  • --reset-author:加载提交用户的信息。
    例如,您可以重新配置本地用户的信息,然后使用此参数重新加载新用户的信息并在追加提交中更新它。
    [En]

    For example, you can reconfigure the local user’s information, and then use this parameter to reload the new user’s information and update it in the append submission.

  • --author=:可修改Git 的 authoremail 信息。
    示例: git commit --amend --author='xxx <xxxx@xxx.xxx>' </xxxx@xxx.xxx>

2、使用场景

(1)场景一

场景描述:

开发代码已提交到本地版本库。提交后发现提交的代码有问题,或部分文件被遗漏。您希望实现以下目标:

[En]

The development code has been submitted to the local version library. After submission, it is found that there is a problem with the submitted code, or some files have been omitted. You want to achieve the following goals:

  1. 修改有问题的代码。
  2. 补足漏提交的文件。(一般是新增的文件没有 git add
  3. 把以上两点相关的代码,和前一次提交的代码合并成一个提交。
  4. 给合并后的提交添加新的注释。

即:有时你提交过代码之后,发现一个地方改错了,你下次提交时不想保留上一次的记录,或者你上一次的 commit message的描述有误,这时候你可以使用 git commit --amend 命令来解决。

解决步骤:

  1. 修改问题代码。
  2. 执行 git add .命令,把漏提交的文件加入暂存区。
  3. 执行 git commit --amend -m "&#x8FD9;&#x91CC;&#x586B;&#x5199;&#x63D0;&#x4EA4;&#x7684;&#x6CE8;&#x91CA;"命令进行提交。

示例:修改最新一次提交的message

有的时候,我们刚刚进行一次提交,突然发现该提交的描述( message)不是很准确。所以需要对该提交的 message进行修改(最近一次的 commit)。

1)首先查看当前分支的历史提交情况。

# 1.查看版本库历史提交
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/amend_test (master)
$ git log --oneline
bd4fd48 (HEAD -> master) 第3次提交,新增内容:git commit --amend v3
8b3a071 第2次提交,新增内容:git commit --amend v2
d3e2d8c 第1次提交,新增readme.txt文件

# 2.查看可回退历史提交信息。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/amend_test (master)
$ git reflog
bd4fd48 (HEAD -> master) HEAD@{0}: commit: 第3次提交,新增内容:git commit --amend v3
8b3a071 HEAD@{1}: commit: 第2次提交,新增内容:git commit --amend v2
d3e2d8c HEAD@{2}: commit (initial): 第1次提交,新增readme.txt文件

2)修改最新一次历史提交记录。

最新的历史提交记录,即第三次提交。

[En]

The latest history submission record, that is, the third submission.

L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/amend_test (master)
$ git commit --amend -m "我是第3次提交,重新修改的message"
[master 69a9841] 我是第3次提交,重新修改的message
 Date: Tue Apr 20 17:41:44 2021 +0800
 1 file changed, 1 insertion(+)

提示:如果此时有需要新增或改动的文件,可以先把文件添加都暂存区,然后随着 git commit --amend命令,一起追加提交。

3)再次查看当前分支的历史提交情况。

# 1.查看版本库历史提交
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/amend_test (master)
$ git log --oneline
69a9841 (HEAD -> master) 我是第3次提交,重新修改的message
8b3a071 第2次提交,新增内容:git commit --amend v2
d3e2d8c 第1次提交,新增readme.txt文件

# 2.查看可回退历史提交信息。
L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/amend_test (master)
$ git reflog
69a9841 (HEAD -> master) HEAD@{0}: commit (amend): 我是第3次提交,重新修改的message
bd4fd48 HEAD@{1}: commit: 第3次提交,新增内容:git commit --amend v3
8b3a071 HEAD@{2}: commit: 第2次提交,新增内容:git commit --amend v2
d3e2d8c HEAD@{3}: commit (initial): 第1次提交,新增readme.txt文件

我们可以看到:

  1. 第三次提交的 massage改变了。
  2. 看到第三次提交的 commit-idbd4fd48变成了 69a9841
  3. 我们可以看到使用 git commit --amend命令,表面上没有生成新的提交,只是进行了内容的追加。但实际上通过 git reflog命令查看历史提交记录,我们还是看到了,其实是新生成了一个 commit

说明:

  1. 关于 git commit --amend命令原理,往下看。
  2. 关于如何修改更早提价的 message,看后面的 git rebase文章。

(2)场景二

场景描述:

假设新接到需求,需要基于 master分支拉取一个 feature分支,且这个 feature分支只有你自己使用(这一点极其重要),由于开发周期较长,你不想每一次提交都产生一个新的 commit,而是想每一次 commit都修改前一次提交(一直追加提交)。

这样做的好处是,等到你的 feature分支提测时,就只有一个干净的 commit,没有乱七八糟的提交历史,你只要把这一个 commit合并到 master里就好了 。

操作步骤:

feature分支上:

  • 第1次提交代码时,使用命令 git commit -a -m "&#x7B2C;1&#x6B21;&#x63D0;&#x4EA4;&#x7684;&#x6CE8;&#x91CA;"进行提交。
  • 第2次以及只后的提交,使用命令 git commit --amend -m "&#x8FD9;&#x91CC;&#x586B;&#x5199;&#x63D0;&#x4EA4;&#x7684;&#x6CE8;&#x91CA;"进行提交。
    这样整个分支可以只有一个 commit

示例:

不推荐这样操作,多次提交可以使你选择撤销的余地比较多,简化提交次数是比较好的想法,但更推荐使用 git rebase命令进行操作。

这里就不演示了。

3、 git commit --amend 命令原理

git commit --amend这个命令给人的感觉,是用新提交的数据,追加到了前一个 commit上。

其实 git commit --amend命令底层原理如下:

前提:您先将丢失或修改的文档提交到临时存储区。

[En]

Premise: you submit the missing or modified documents to the temporary storage area first.

  1. git reset --soft HEAD^:回退一个版本,且工作区和暂存区中的内容不会退。
  2. git commit -c ORIG_HEAD:提交操作。在根据此时的暂存区生成一个新的提交对象,代替原来提交的位置。
    说明:
    -C <commit></commit>,全称 --reuse-message=<commit></commit>:获取现有的提交对象,并在创建提交时重用现有提交对象的日志消息和作者信息(包括时间戳)。
    -c <commit></commit>,全称 --reedit-message=<commit></commit>:与 -C类似,但是 -c会调用编辑器,以便用户可以进一步编辑提交消息。

看如下图示:

假设 master分支上的提交历史如下图:

『现学现忘』Git后悔药 — 34、git commit --amend 命令

运行 git commit --amend命令,过程如下:

『现学现忘』Git后悔药 — 34、git commit --amend 命令

参考:

Original: https://www.cnblogs.com/liuyuelinfighting/p/16798492.html
Author: 繁华似锦Fighting
Title: 『现学现忘』Git后悔药 — 34、git commit –amend 命令



相关阅读

Title: 用Python做一个超好玩的拼图游戏,0基础也能包你学会,附送超详细注释的源码~

导语

『现学现忘』Git后悔药 — 34、git commit --amend 命令

你所认为的 python……..

python & boring

枯燥、无趣

『现学现忘』Git后悔药 — 34、git commit --amend 命令

『现学现忘』Git后悔药 — 34、git commit --amend 命令

『现学现忘』Git后悔药 — 34、git commit --amend 命令

“安全”提示

走进 不一样的游戏世界

走进”python课堂”

让我们进入真正的编程世界,培养逻辑数理思维,学习掌握python特色,让你的学习过程不再枯燥、不再无趣~

『现学现忘』Git后悔药 — 34、git commit --amend 命令

『现学现忘』Git后悔药 — 34、git commit --amend 命令

下面跟着我的脚步一起来看看叭!!!

害,昨天看到一个Java版本的拼图小游戏上了推荐榜单哎!所以小编悄悄的走来了。

用Python做的拼图小游戏这也能上嘛?!

动漫人物个个生动,符合你口味。

对于动漫的人物你是否留意过?

来,跟随小编

用游戏的方式欣赏动漫人物的形象吧!

ps:小编用的是动漫卡通人物形象动物等等……大家可以自由选择滴!

(1)比如你对象做拼图:

『现学现忘』Git后悔药 — 34、git commit --amend 命令

(2)在比如你好奇心促使你想看缺不能看的:

啊这~其实一张恐怖片的图片,估计发出来会违规~

……………………………………………………分界线………………………………………………………………….

(3)再比如玛卡巴卡 做拼图

『现学现忘』Git后悔药 — 34、git commit --amend 命令

咳咳咳………图片随缘大家随便找不管是什么 Python都能拼!!!

正文

(一)环境的安装:

Python版本:3.6.4

相关模块:

pygame模块;

以及一些Python自带的模块

(二)游戏简介:

这款拼图游戏分为几×几的模式,主要是分为33模式、44模式、5*5模式,对应的L简单难度、M中等难度、H最难!!照着原图能拼回来就是过关啦!!

『现学现忘』Git后悔药 — 34、git commit --amend 命令

(三)提前准备的张素材:

『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令​​(四)开始首先写游戏界面:

『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令​​(五)游戏操作,上下左右拼图移动:

『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令​​(六)显示游戏结束界面:

『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令 ​​

效果图:

『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令​​

附完整源代码:

『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令​​​『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令​​​『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令​​​『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令​​​『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令​​​『现学现忘』Git后悔药 — 34、git commit --amend 命令『现学现忘』Git后悔药 — 34、git commit --amend 命令​​​​『现学现忘』Git后悔药 — 34、git commit --amend 命令​​『现学现忘』Git后悔药 — 34、git commit --amend 命令​​总结

好啦!本次文章就在这里啦!如文章有帮助到你,记得点赞,关注哦~

本期文章项目源码以及往期的案例资源需要的源码基地企鹅群见。

​🎊🎊源码基地: 关注小编获取哦~💝记得三连吖

『现学现忘』Git后悔药 — 34、git commit --amend 命令

记得三连哦!爱你~

Original: https://blog.csdn.net/weixin_55822277/article/details/119806697
Author: 顾木子吖
Title: 用Python做一个超好玩的拼图游戏,0基础也能包你学会,附送超详细注释的源码~

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/363339/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 1.Flask配置文件

    1. 配置文件 1.1 介绍 from flask import Flask app = Flask(__name__) print(app.config) flask中的配置文件…

    Python 2023年1月2日
    030
  • python 单例

    python 单例 原创 海洋的渔夫2022-07-22 21:43:04博主文章分类:Python系列 ©著作权 文章标签 类属性 初始化 python 文章分类 Python …

    Python 2022年9月6日
    0119
  • day08_python中的属性(01)

    day08_python中的属性(01) 原创 wx5e6caa8b9792d2022-08-01 17:05:33博主文章分类:Python自动化开发 ©著作权 文章标签 pyt…

    Python 2022年9月3日
    076
  • 7个Python实战项目(附源码),拿走就用

    Python是目前最好的编程语言之一。 由于其可读性和对初学者的友好性,已被广泛使用。 那么要想学会并掌握Python,可以实战的练习项目是必不可少的。 接下来,我将给大家介绍20…

    Python 2023年1月4日
    024
  • Python和Go是什么?它们之间有什么区别?

    互联网技术更新迭代的速度越来越快,编程语言的变化更是尤为明显,Python和GO语言都是时下非常热门的编程语言,GO是一种为速度而构建的过程式函数式语言,而Python是一种面向对…

    Python 2022年9月3日
    085
  • CentOS 7下部署flask项目详细过程

    1.写在前面的话 很久不做python项目了,有些遗忘,同时网上相关资料太多太杂,没有很系统,所以根据自己的理解和网上资料,写下云上部署过程,方便下次查看,至于创建项目过程,网上资…

    Python 2023年1月4日
    024
  • 计算机视觉-图像的傅里叶变换

    😊😊😊 欢迎来到本博客😊😊😊本次博客内容将继续讲解关于OpenCV的相关知识🎉 作者简介:⭐️⭐️⭐️ 目前计算机研究生在读。主要研究方向是人工智能和群智能算法方向。目前熟悉pyt…

    Python 2023年2月2日
    046
  • conda命令行常用操作

    conda命令行常用操作 1 conda介绍 * 1.1 查看版本 2.1 更新到当前版本 3.1 查看某个命令帮助文档 2 环境 (environment) * 2. 1 查看所…

    Python 2023年1月16日
    031
  • 【BUUCTF】[CISCN2019 华东南赛区]Double Secret

    尝试/secret?secret=1输入长一点发现出现了报错,这个页面是flask应用开启了debug模式后运行出错的表现,在较老版本的flask中可以直接在这个页面中打开pyth…

    Python 2023年1月1日
    026
  • centos7篇—centos7中安装mongodb

    centos7中安装mongodb 方式一: * 1. 安装环境 2. 安装过程 启用授权验证 方式二: * RHEL/CentOS 用户 刷新缓存并安装 mongodb-org。…

    Python 2023年1月27日
    017
  • Python Pandas 数据分析工具透视表(pivot table)

    数据透视表概念 数据透视表是Excel中常用的工具,本片文章的重点不是认识数据透视表,所以找了一片文章,供大家参考。>>>Excel学习笔记-数据透视表 透视表操…

    Python 2022年12月29日
    039
  • 推荐一款采用 .NET 编写的 反编译到源码工具 Reko

    今天给大家介绍的是一款名叫Reko的开源反编译工具,该工具采用C#开发,广大研究人员可利用Reko来对机器码进行反编译处理。我们知道.NET 7 有了NativeAOT 的支持,采…

    Python 2023年1月28日
    031
  • 爬虫日记(86):Scrapy的Scheduler类(三)

    前面已经分析过入队的情况,进入队列时,会根据请求的内容来生成一个数字指纹,如果两个数字指纹一样,那么就可以丢掉这个请求,这样就可以防止重复的请求,这样可以提高效率。接着下来,我们来…

    Python 2023年1月26日
    015
  • 全网最简约的sklearn环境配置教程(百分百成功)

    全网最简约的sklearn环境配置教程(百分百成功) 环境内容: 环境配置: 1、使用requirements.txt的方式一次性安装所有包: 2、 打开Anaconda Prom…

    Python 2023年1月16日
    041
  • python 调整子图布局_matplotlib中精确调整子图形大小

    我在A4纸上绘制一些索引数据,用3×2行列的6幅图像绘制。我已经得到了基本的代码工作,它将这个数据帧数据绘制成以下6个图。在def plot_idx(df,image,k…

    Python 2023年1月15日
    027
  • pytest单元测试框架基础知识

    一、pytest单元测试框架 单元测试是指在软件开发过程中,对软件的最小单元(功能、方法)的正确性进行检查和测试。 [En] Unit testing refers to chec…

    Python 2023年1月18日
    028
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总