笔名:  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描述.

最新文章

  1. 记录yii2-imagine几个常用方法
  2. PHP CURL模拟提交数据 攻击N次方
  3. Java连接Oracle数据库开发银行管理系统【一、需求篇】
  4. mssql 2008 复制订阅
  5. android中实现view可以滑动的六种方法
  6. javadoc注释规范
  7. BNUOJ-29357 Bread Sorting 模拟
  8. WinForm聊天室
  9. Java基础知识强化之集合框架笔记26:LinkedList的特有功能
  10. iOS开发之NSOperation & NSOperationQueue
  11. 【开发技术】Get请求和Post请求区别
  12. hosts管理工具1.0发布了。。。。
  13. 二进制安装 kubernetes 1.12(四) - 部署 Node 节点组件
  14. 使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)
  15. 用Eclipse在Weka中嵌入新算法
  16. PICE(4):MongoDBStreaming - gRPC Protobuf conversion
  17. HNOI2018题解
  18. ASP.net中aspx与cs函数的互调
  19. Maven:版本管理 【SNAPSHOT】【Release】【maven-release-plugin】【nexus】
  20. 精巧好用的DelayQueue 转

热门文章

  1. ruby方法名之命名方式
  2. 【搞定Jvm面试】 Java 内存区域揭秘附常见面试题解析
  3. Dubbo 2.7新特性之异步化改造
  4. KEIL MDK 算式优先级 备忘
  5. Python的re模块,正则表达式书写方法
  6. kubernetes-集群构建
  7. 关于F5负载均衡你认识多少?
  8. 【VUE】自定义组件
  9. 70道阿里百度高频Java面试题(框架+JVM+多线程+算法+数据库)
  10. ssm项目集成