zoukankan      html  css  js  c++  java
  • git移除上一次的commit中误添加的文件

    在使用git进行版本管理时,往往会出现一些误操作,比如将一些不加上传的文件放到了暂存区,即上传到了上一次commit中

    比如:

    commit c134ab90ca7c4daf8bfa22e3ad706150abbd9bbc
    Author: lin <542072149@qq.com>
    Date:   Mon Jan 8 17:51:02 2018 +0800
    
        添加了不想放入暂存区的文件
    
        Change-Id: I911c17175d0637de21824d34bc2b7bf8055e9d6c
    
     package-lock.json | 10753 ++++++++++++++++++++++++++++++++++++++++++++++++++++
     1 file changed, 10753 insertions(+)

    那么如何才能将他移出暂存区呢

    解决方案一:

    1. 
    git rm --cached package-lock.json
    
    ----- result -------
    
    rm 'package-lock.json'
    
    2. 
    git status
    
    ----- result -------
    
    On branch demo
    Changes to be committed:
      (use "git reset HEAD <file>..." to unstage)
    
        deleted:    package-lock.json
    
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
    
        package-lock.json
    
    3. 
    git commit --amend --allow-empty
     查看log
    1. 
    git log --stat
    
    ------- result ---------
    
    commit ce6be4ee3179030606bcc3506d5ea4f14ad63fe1
    Author: lin <542072149@qq.com>
    Date:   Mon Jan 8 17:51:02 2018 +0800
    
        添加了不想放入暂存区的文件
    
        Change-Id: I911c17175d0637de21824d34bc2b7bf8055e9d6c
    结论

    上一次的commit中已经没有了误添加的文件,且Change-Id与修改前相同,只是一次 amend

    解决方案二

    1. 
    git reset --mixed HEAD~1
    
    -------- result ----------
    
    On branch demo
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
    
        package-lock.json
    
    2.
    
    git log
    
    ---------resut ---------
     上一次的commit已经被删除了
    学会勇敢
  • 相关阅读:
    Salesforce: 测试代码写在非测试类中
    Salesforce: 使用代码编辑日期时间
    测试用例练习
    DFA算法实现敏感词过滤
    基于redis实现分布式锁
    Python检查字符串之间的相似度
    二维码生成器
    MySQL 备份/恢复
    实现阿里云短信验证
    SnowFlake 生成唯一订单id
  • 原文地址:https://www.cnblogs.com/Sir-Lin/p/8243999.html
Copyright © 2011-2022 走看看