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已經被刪除了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM