在使用git进行版本管理时,往往会出现一些误操作,比如将一些不加上传的文件放到了暂存区,即上传到了上一次commit中
比如:
commit c134ab90ca7c4daf8bfa22e3ad706150abbd9bbcAuthor: 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 demoChanges to be committed: (use "git reset HEAD..." to unstage) deleted: package-lock.jsonUntracked files: (use "git add ..." to include in what will be committed) package-lock.json3. git commit --amend --allow-empty
查看log
1. git log --stat------- result ---------commit ce6be4ee3179030606bcc3506d5ea4f14ad63fe1Author: 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 demoUntracked files: (use "git add..." to include in what will be committed) package-lock.json2.git log---------resut --------- 上一次的commit已经被删除了