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