git: reset

时间:2023-03-09 17:29:23
git: reset

git reset --hard:把commit撤销,意思是不仅此次commit提交的文件从本地版本库的状态重置,而且把此次commit的文件也从本地目录中删除

所以如果你执行之后发现,git status正常,用ls命令查看即将提交的文件列表,发现文件竟然被删掉了。

所以这个命令一定要慎用,不懂会害死人的。

这个命令常见的场景是undo commit permanently(永久撤销commit)

详细的说明是:http://www.git-scm.com/docs/git-reset

git reset --soft commit_id: 撤销此次commit,与hard的区别是,仅重置此次commit的文件在本地库中的状态,不会删除新增文件

对撤销的文件执行git status后,发现文件还在,只是状态还原了

在官方给出的说明中,reset --soft在undo commit and redo中用是合理的

详细的说明是:http://www.git-scm.com/docs/git-reset

综上所述,如果某次提交的文件有缺失或提交了不想提交的文件,或者commit message写错了,要撤销该次提交,可以用git reset --soft,一定不要用git reset --hard。

关键词:撤销commit,撤销提交