## 一、Commit回退 ### 1.1 从一次commit回退到某一次commit #### 1.1.1 查看历史提交记录 ```shell # git 查看历史commit git log ``` #### 1.1.2 复制上一次提交的commit码 #### 1.1.3、输入回退命令 ```shell git revert your_commit_code ``` ### 1.2 强制回到某一次提交 ​ 在部分时候,由于版本冲突的问题,1.1 中提到的方法报冲突错误,这个时候实在没有办法可以使用`git reset --hard`命令。其步骤如下所示。值得注意的是,由于这个命令会重写历史,所以需要跟仓库的协作者进行沟通。 ```shell # 先找到要回去的commit的commit号 git log # 回到某一次提交 git reset --hard your_commit_code # 强制推送,这是因为本地修改后提交上去会重新覆盖之前的历史,如果不force会报冲突错误。 git push -f origin your_branch ``` ## 二、放弃所有文件修改 (未Commit) **2.1 解决方法**(两种解决方法) ```shell # 方法1 git add . git reset --hard "commit_code" # 方法2,实际测试 git stash git stash drop #丢弃指定条目 ``` **2.1 git stash 命令** 别急,Git提供了一个**git stash命令**恰好可以完美解决该问题, 其将当前未提交的修改(即,工作区的修改和暂存区的修改)先暂时储藏起来,这样工作区干净了后,就可以切换切换到master分支下拉一个fix分支。在完成线上bug的修复工作后,重新切换到dev分支下通过**git stash pop**命令将之前储藏的修改取出来,继续进行新功能的开发工作