- 撤销本地修改
[root@xuhx-02 git_project]# git status
# 位于分支 master
# 还没有暂存以备提交的变动:
# (使用 "git add <file>..." 更新要提交的内容)
# (使用 "git checkout -- <file>..." 丢弃工做区的改动)
#
# 修改: README.md
#
修改还没有加入提交(使用 "git add" 和/或 "git commit -a")
[root@xuhx-02 git_project]# git checkout -- README.md
[root@xuhx-02 git_project]# git status
# 位于分支 master
无文件要提交,干净的工做区
- 撤销git add
[root@xuhx-02 git_project]# git add 01.sh
[root@xuhx-02 git_project]# git status
# 位于分支 master
# 要提交的变动:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 新文件: 01.sh
#
[root@xuhx-02 git_project]# git reset HEAD 01.sh
[root@xuhx-02 git_project]# git status
# 位于分支 master
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# 01.sh
提交为空,可是存在还没有跟踪的文件(使用 "git add" 创建跟踪)
- 撤销commit
[root@xuhx-02 git_project]# git commit -m "add 01.sh"
[master 9d8cbe9] add 01.sh
1 file changed, 10 insertions(+)
create mode 100644 01.sh
- --mixed :不删除工做空间改动代码,撤销commit,而且撤销git add . 操做
[root@xuhx-02 git_project]# git reset --mixed HEAD^
[root@xuhx-02 git_project]# git status
# 位于分支 master
# 未跟踪的文件:
# (使用 "git add <file>..." 以包含要提交的内容)
#
# 01.sh
提交为空,可是存在还没有跟踪的文件(使用 "git add" 创建跟踪)
- --soft :不删除工做空间改动代码,撤销commit,不撤销git add .
[root@xuhx-02 git_project]# git reset --soft HEAD^
[root@xuhx-02 git_project]# git status
# 位于分支 master
# 要提交的变动:
# (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 新文件: 01.sh
#
- --hard :删除工做空间改动代码,撤销commit,撤销git add .注意完成这个操做后,就恢复到了上一次的commit状态。
[root@xuhx-02 git_project]# git reset --hard f51b0fdfa6846f88b90ac76e7975594bdd887576
HEAD 如今位于 f51b0fd add readme
[root@xuhx-02 git_project]# ls
README.md
- --amend:修改的文件已被git commit,但想再次修改再也不产生新的Commit
# 从新提交
$ git add sample.txt
$ git commit --amend -m"说明"
- 清除工做空间 git clean
[root@xuhx-02 git_project]# git clean -n
将删除 01.sh
- 参考git 撤销回滚学习