场景1.本地修改尚未提交到暂存区, 即本地代码修改还没有执行(git add),使用命令
git checkout --fileName
// 放弃全部修改:
git checkout .
场景2. 本地修改已经先提交暂存区,执行的git add,但没有提交git commit, 撤销缓存提交
// 放弃修改指定文件
git reset HEAD filepathname
// 放弃修改所有文件
git reset HEAD .
Note: 只是撤销缓存提交,本地代码修改尚未还原。
场景3. 已经git commit 提交,版本回退
// 回退到前一个版本
git reset --hard HEAD^
//回退到指定版本
git reset --hard commitid
Note:
- HEAD表示当前版本, HEAD^表示上个版本, HEAD^^表示上上个版本
- commitid通过git log获取,直接使用版本号的前几个字符串即可。(git log --pretty=oneline 一行显示)
- 要重返未来,用git reflog查看命令历史,以便确定要回到未来的版本