Git amend:修改最近一次提交
Git 中允许修改已经提交的commit,包括最近一次提交以及最近多次提交。修改最近多次提交比较复杂,以后会有介绍。本文主要是解释下开发过程中遇到频次比较高的修改最近一次提交amend
命令。
从一个简单的例子入手。
# 初始化一个git项目
git init
# 添加一个文件,并输入一些内容
vim a.txt
之后提交当前文件
# 暂存
git add .
# 提交
git commit -m "v1"
可以看到当前的状态,我这里使用了可视化的工具sourcetree
接着,比如我有做了一些调整,再一次提交V2。
结果没成想,手一抖,2写成了3。真是惭愧,咋整呢?其实有两种方法:
- 其一是reset到上一次提交,然后重新提交。
- 其二是本文介绍的amend
amend使用起来非常简单:
git commit --amend
输入以上命令之后,命令行窗口会进入到交互式的界面。你完全可以理解为就是vim
的编辑界面
如图所示,按以下步骤操作(和vim一样):
- 按
i
进入编辑模式 - 修改提交信息
- 按
esc
退出编辑模式 - 按
shift+;
然后再输入wq
回车退出
此时就已经完成了修改message的操作
怎么样是不是很简单。但是我还要扩展一下…
第一,不知道细心的同学是否已经发现,两次提交的id发生了变化。那么这会有什么影响呢?其实如果你代码没有Push,那么问题不大,这也正是amend优雅的使用场景,即代码还未push到远端。但如果已经push到远端,那么会产生这样一种情况:
以上相当于你本地和远端已经产生分支,需要合并。也就是这一次amend之后,你是推不上代码的。你不得不pull代码下来后进行合并,再次提交一次,但这实在有违初衷。
don’t amend your last commit if you’ve already pushed it.
第二,如果你不仅想修改提交信息,也需要提交内容进行修改,也同样是没有问题的。毕竟这个命令本身就是执行一次提交git commit
。这里的例子见下文。
最后,如果如只想提交文件的变动而不是提交信息的修改。那么可以使用如下命令
git commit --amend --no-edit
如上,我将a.txt文件做了一些调整。然后直接执行以上的命令,那么将得到以下的结果。
也就是我既将修改的代码提交了,也没有添加任何描述。但复用了以前的描述。
好了,基本上涉及到amend
的参数就是这些了,如果有什么其他的问题,欢迎评论区指出,我及时调整。
Git amend:修改最近一次提交相关推荐
- git commit --amend 修改最近一次提交
修改上一次提交的代码 如果您使用的 Gerrit 管理的代码,不必 abandon 本次提交,不必 reset,直接修改出问题的文件, 修改好代码之后执行 git commit -a --amend ...
- git常用命令(克隆、分支、tag标签、推送、日志查看,常用命令总结)、将本地代码第一次提交到远程git仓库、过滤掉不提交的内容
1.1 克隆Git代码 $ git clone http://xxxx.git --branch master 为自己的写新项目添加git版本控制,进入项目目录执行以下命令: git init . 2 ...
- 基于Git rebase修改历史提交信息
说明 关于为什么要修改历史提交的作者信息和提交信息,我就不多说了,也许是项目规范要求,也许是自己强迫症,总之是有这样的需求. 开始之前先说明一下: 本文介绍的方法只适用于本地仓库,提交到远程以后,我没 ...
- 通过 $ git commit --amend 修改 commit 的 message
$ git commit --amend 代码场景 --amend 代码场景 在提交代码的时候,commit 的时候 -m 后的 msg 写错了 $ git commit --amend -m '新的 ...
- 【Git】Git 分支管理 ( 解决分支合并冲突 | 创建并切换分支 git switch -c feature1 | 修改 feature1 分支并提交 | 修改 master 主版本并提交 )
文章目录 一.创建并切换分支 git switch -c feature1 二.修改 feature1 分支并提交 三.修改 master 主版本并提交 一.创建并切换分支 git switch -c ...
- git 将暂存区文件提交_Git知识
Git 快速开始 一. 下载git 地址 : https://git-scm.com/downloads 二.git基础 1.git config 相关命令 # local 只对某一个仓库有效git ...
- Git之深入解析如何重写提交历史
一.Git 的提交原则 了解了管理或者维护 Git 仓库.实现代码控制所需的大多数日常命令和工作流程,尝试跟了踪和提交文件的基本操作,并且掌握了暂存区和轻量级地分支及合并的威力.如果想进一步对 Git ...
- Git撤销修改、回退版本相关命令
取消对文件的修改.还原到最近的版本.废弃本地做的修改. git checkout file.txt# 如果是当前项目的所有修改过的文件 git checkout . 取消已经暂存的文件,即撤销先前&q ...
- Git如何修改commit信息
一.git 如何修改最近一次的commit信息 1. git commit --amend 2. 进入vim操作界面之后, 点击字母键 i 然后进入INSERT模式,然后对commit信 ...
- Git---git commit --amend -m ‘信息‘ 实现追加提交为一次提交
番外:跳过使用暂存区域 git commit -a -m '信息' ==>>(等价于) git add . && git commit -m '信息' 有时候我们提 ...
最新文章
- python精彩编程200例百度_Python趣味编程与精彩实例
- ios php 序列化,PHP常见的序列化与反序列化操作实例分析
- 苹果ipa签名工具免越狱下载_苹果iphone免越狱使用iTunes 一键下载旧版本app
- 【直播回放】新手如何入门并学习计算机视觉?
- 独立成分分析 ( ICA ) 与主成分分析 ( PCA )再解析
- [转]在ROS下使用zeroconf配置多机通信
- 利用matlab guide制作简易计算器
- 作者:冯是聪(1973-),男,博士,北京明略软件系统有限公司联合创始人兼CTO。...
- python3 socketserver源码解析_解读python中SocketServer源码
- Matplotlib 中文用户指南 7.1 交互式导航
- Android 应用开发(18)---在运行时请求权限
- 红包封面发货平台卡密系统 全新红包封面平台可搭建分站独立后台的源码
- 将 .json 格式 转换成 .xml格式
- 勒索病毒数据库恢复 勒索病毒解密恢复 中勒索病毒解密恢复数据
- c语言各类型数据混合运算
- 怎样在计算机上登录qq音乐,如何使用手机控制电脑qq音乐播放
- mysql数据库默认密码在哪看_怎么查看mysql数据库的登录名和密码
- 须知年少凌云志 曾许人间第一流
- JAVA+MySQL 图书馆借阅信息管理系统
- 电脑公司GHOST WIN7 装机旗舰版 2013 09
热门文章
- python小学口算题库生成器_口算题自动生成的小程序-L.A.SMILE自家用软件-口算题生成下载20060207-西西软件下载...
- 简单的外网映射工具natapp操作
- 婚纱租赁APP开发功能模块解析
- 【mcuclub】温度传感器DS18B20
- 一个游戏出中文版需要通过什么审核?(转自知乎)
- 主分区、扩展分区、逻辑分区和活动分区的区别
- 统计|(可/无)重复双因素方差分析一般步骤及分析表
- 如何将 Excel 数据分组后按次序横向排列
- 微信Log日志分析——初步探索
- Android手机无法上网怎么办,为什么android手机已经连接WIFI还是不能上网?