git 回滚与回退命令行
git 回滚与回退命令行
git reset
git reset 就像是时光机,可以将事物回退到某个时间点,可以改变这个时间点之后发生的事情。
将commit的代码回退到本地工作副本,以便修改后重新commit
git reset --soft <<commitID>>
如:git reset –soft HEAD^
注意:此方式不会回退已push的commit(commit和index不会丢失),本地工作副本区的修改也不会丢失,重新push就是新的提交
- 将本地的源码回退到某个版本,包括commit内容,和git自己对代码的索引都会回退到某个版本, 所有本地修改将丢失
git reset --hard <<commitID>>
如:git reset –hard HEAD~3 (回退3次提交)或 git reset –hard afbd4fj
注意:此方式会在重新push之后丢失目标commitID之后push的内容与index,且还会丢失所有本地工作副本区修改内容
- 将本地的源码都回退到某个版本, 但保留本地未提交的代码,已提交的commit和index回退到目标版本
git reset --mixed <<commitID>>
注意:此方式会在重新push之后丢失目标commitID之后push的内容与index,本地修改将会保留在工作副本区
git revert
git revert 就像是小孩做错了事,大人可以纠正他,要求小孩按正确的方法重新做。时间不可以回退,但事情可以重做。
- 将某次版本内容回退到本地副本工作区
git revert <<commitID>>
revert后再次提交