Git实战指南----跟着haibiscuit学Git(第十篇)

笔名:  haibiscuit

博客园: https://www.cnblogs.com/haibiscuit/

Git地址: https://github.com/haibiscuit?tab=repositories  (欢迎star)

本项目地址: https://github.com/haibiscuit/StudyBook

尊重笔者的劳动成果,未经允许请不要转载

九:git commit --amend

简称:版本替换(对文件进行替换,添加的操作),即替换本地仓库的commit id,替换成新的id

该命令只适合对本地自己提交的版本进行操作

(注:需要注意的是使用git commit --amend不能用在全局的场景下,例如你git pull团队提交的远程仓库后使用git commit --amend替换远程仓库的最新版本是不合适的,只适合对自己本地commit的版本进行替换)

作用:

(1) git commit --amend命令用来修复最近一次commit. 可以让你合并你缓存区的修改和上一次commit, 而不是提交一个新的快照. 还可以用来编辑上一次的commit描述.

(2) 记住amend不是修改最近一次commit, 而是整个替换掉他. 对于Git来说是一个新的commit.

 

用法:

git commit --amend

//合并缓存区的修改和最近的一次commit, 然后用生成的新的commit替换掉老的. 如果缓存区没有内容, 那么利用amend可以修改上一次commit的描述.

 

使用场景:

(1) 开发过程中很容易忘记stage某个文件或填写了不够准确的commit描述. --amend就是用来fix这些错误的.

不要对一个公共的commit使用amend

(2) amend后生成的commit是一个全新的commit, 之前的老的commit会从项目历史中被删除. 如果你amend了一个被其他开发者使用的commit, 会严重影响其他开发者.

例子:

下面的例子我们添加一个文件, 然后单独把它commit到HEAD里面, 然后发现这次commit少包括了一个文件. 然后我们使用--amend解决这个问题.

# Edit hello.py and main.py

git add hello.py

git commit

# Realize you forgot to add the changes from main.py

git add main.py

git commit --amend --no-edit

//编辑器的默认描述会是上一次commit的描述, --no-edit能让我们修复commit,而且不要修改commit描述.

原文地址:https://www.cnblogs.com/haibiscuit/p/11986449.html

时间: 2024-10-10 08:30:44

Git实战指南----跟着haibiscuit学Git(第十篇)的相关文章

Git实战指南----跟着haibiscuit学Git(第九篇)

笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=repositories  (欢迎star) 本项目地址: https://github.com/haibiscuit/StudyBook 尊重笔者的劳动成果,未经允许请不要转载 八:git log (1) 展示历史提交的commit    git log --pretty=oneline --abbr

Git实战指南----跟着haibiscuit学Git(第五篇)

笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=repositories  (欢迎star) 本项目地址: https://github.com/haibiscuit/StudyBook 尊重笔者的劳动成果,未经允许请不要转载 四:多人合作 多人合作的工作流程: 说明: (1) master(当前版本)分支是主分支,因此本地要时刻与远程同步: (2)

Git实战指南----跟着haibiscuit学Git(第十一篇)

笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=repositories  (欢迎star) 本项目地址: https://github.com/haibiscuit/StudyBook 尊重笔者的劳动成果,未经允许请不要转载   十:版本回退 (1) 场景一  撤销工作区文件的修改(即没有git add到暂存区) 方法一: git checkout

Git实战指南----跟着haibiscuit学Git(第八篇)

笔名:  haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=repositories  (欢迎star) 本项目地址: https://github.com/haibiscuit/StudyBook 尊重笔者的劳动成果,未经允许请不要转载 七:git diff 作用:比较各个分区共同文件的不同(即想要使用该命令,各个分区都要有相同的文件) (1) 展示工作区和暂

[老老实实学WCF] 第十篇 消息通信模式(下) 双工

原文:[老老实实学WCF] 第十篇 消息通信模式(下) 双工 老老实实学WCF 第十篇 消息通信模式(下) 双工 在前一篇的学习中,我们了解了单向和请求/应答这两种消息通信模式.我们知道可以通过配置操作协定的IsOneWay属性来改变模式.在这一篇中我们来研究双工这种消息通信模式. 在一定程度上说,双工模式并不是与前面两种模式相提并论的模式,双工模式的配置方法同前两者不同,而且双工模式也是基于前面两种模式之上的. 在双工模式下,服务端和客户端都可以独立地调用对方,谁都不用等待谁的答复,同样也不期

跟着百度学PHP[4]函数篇1-参数

ps:俺的文章俺懂就行.大家不要拿来学习不然每个人的学习思路不一样.看视屏文章的老师不同笔记不同加上我也是新手上路,还怕误导!请大家看行且思考,帮忙挖Bug也可以. 案例要求:你可以写一个两行三列的表格吗?N行N列呢? 我们先来使用php写一个简单的两行三列的表格.(PS:由此引出函数参数的作用) <?php /* *在写的时候建议是成对的写. *比如: for ($i=1; $i <=2; $i++) { $table.="<tr>"; //写完立马写另外一个

跟着百度学PHP[5]函数篇2-PHP中的特殊形式的函数

目录...................................................... .00x1 可变函数 .00x2 回调函数 .00x3  . ........................................................... 00x1 可变函数的使用 在PHP里面如果说将“函数名称”赋予字符串类型的变量.在调用这个变量的时候如果使用带有小括号,那么PHP就会将该作为函数解析.这就叫可变函数. 注:可变函数不可以用于echo,p

Flask最强攻略 - 跟DragonFire学Flask - 第十篇 before_request after_request

Flask我们已经学习很多基础知识了,现在有一个问题 我们现在有一个 Flask 程序其中有3个路由和视图函数,如下: from flask import Flask app = Flask(__name__) # type:Flask @app.route("/login") def login(): return "Login" @app.route("/index") def index(): return "Index"

【转】git - 简明指南

git - 简明指南 助你入门 git 的简明指南,木有高深内容 ;) 作者:罗杰·杜德勒 感谢:@tfnico, @fhd 和 Namics其他语言 english, deutsch, español, français, indonesian, italiano, nederlands, polski, português, русский, türkçe, ??????, 日本語, ??? Vietnamese 如有纰漏,请在 github 提报问题 安装 下载 git OSX 版 下载