Git撤销更改

image.png

image.png

3个步骤

git add .
git commit -m "comment" 
git push
git add .把所有文件放入暂存区;
git commit把所有文件从暂存区提交进本地仓库;
git push把所有文件从本地仓库推送进远程仓库。

4个区

工作区(Working Area)
暂存区(Stage)
本地仓库(Local Repository)
远程仓库(Remote Repository)

5个状态

未修改(Origin)
已修改(Modified)
已暂存(Staged)
已提交(Committed)
已推送(Pushed)

检查修改并撤销修改

  • 已修改,未暂存(git add . 之前)
    查看修改:git diff 查看工作区和暂存区之间的差异


    image.png

    撤销修改:git checkout . 或者 git reset --hard

  • 已暂存,未提交(git add .之后,git commit 之前)
    查看修改:git diff --cached 查看暂存区和本地仓库之间的差异
    撤销修改:git reset --hard 或者 git reset(撤回到已修改未暂存状态)git checkout .
  • 已提交、未推送(git commit 之后,git push前)
    查看修改:git diff master origin master 查看本地仓库和远程仓库的差异
    master代表本地仓库,而origin/master远程仓库
    撤销修改:git reset --hard origin/master(本地仓库被污染,取回远程仓库的代码)
  • 已推送(git push 之后)
    本地和远程一致
    git reset --hard HEAD^ 恢复本地仓库
    git push -f 强制推到远程仓库