git 撤销

  1. 撤销本地修改
[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
无文件要提交,干净的工做区
  1. 撤销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" 创建跟踪)
  1. 撤销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"说明"
  1. 清除工做空间 git clean
[root@xuhx-02 git_project]# git clean -n
将删除 01.sh
  1. 参考git 撤销回滚学习
相关文章
相关标签/搜索