• 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描述.

  • 相关阅读:
    【转】Tomcat中部署java web应用程序
    【转】如何安装mysql服务
    【转】java_web开发入门
    【转】SVN 查看历史信息
    【转】java编译错误 程序包javax.servlet不存在javax.servlet.*
    【转】MySQL5安装的图解(mysql-5.0.27-win32.zip)
    【转】JAVA变量path , classpth ,java_home设设置作用和作用
    intellij idea 10.5介绍
    Java中的IO与NIO
    javaWeb完成注册功能
  • 原文地址:https://www.cnblogs.com/haibiscuit/p/11986449.html
Copyright © 2020-2023  润新知