Git相关笔记

背景

学习Git时,出于练习的目的,在库中提交了很多无意义的Commits,同时也把这些Commits推送到了Github,现在想把那些无意义的提交记录删除,同时将每次提交时所做的修改保留下来。即工作区不变,仅仅改变提交的记录。通过搜索,使用git reset命令即可。

使用git reset

1. git reset –soft

使用该命令,工作区和暂存区的内容不变,只是将HEAD移动到某一commit上去,在此之后的commit都将丢失。这相当于从该commit之后所做的修改都保留了下来,但是删除了每次修改的提交记录。此时,工作区的内容与repo中的内容不一致,如果使用git status查看,会发现从该commit之后所做的修改都没有被提交,但是都放入的了暂存区(这一点与之后的git reset --mixed有所不同)

2. git reset –hard

使用该命令,相当于工作区、暂存区和repo都回到了某一版本,此时三者是一致的,从该commit之后的修改都将丢失。所以要慎用!!!

3. git reset –mixed(default)

git reset --soft的不同是,所做的修改未被提交到暂存区,而git reset --soft,所做的修改都提交到了暂存区。

最后

由上可知,应该使用git reset --soft回到某一次commit,然后再commit一个新的版本就可以达成目的了。