Git常用撤销操作

举报
yd_85921758 发表于 2017/09/29 15:25:38 2017/09/29
【摘要】 本文主要介绍Git常用撤销操作

常用撤销操作

基本状态标识

  • A- = untracked 未跟
  • A = tracked 已跟踪未修
  • A+ = modified - 已修改未暂存  

  • B = staged - 已暂存未提交  

  • C = committed - 已提交未PUSH

各状态之间变化

  • A- -> B : git add <FILE

  • B -> A- : git rm --cached <FILE>
  • B -> 删除不保留文件 : git rm -f <FILE>
  • A -> A- : git rm --cached <FILE>

  •   A -> A+ : 修改文件
  • A+ -> A : git checkout -- <FILE>git checkout -- . 则是撤销所有已track但未提交的文件修改
  •   A+ -> B : git add <FILE>
  •   B -> A+ : git reset HEAD <FILE>
  •   B -> C : git commit
  •   C -> B : git reset --soft HEAD^
  • A- -> X: git clean -df 。删除新增的未track的文件。
  •   修改最后一次提交:git commit --amend

revert撤销

git revert 撤销某次操作并提交一个新版本。将需要revert的版本的内容再反向修改回去,版本会递增。此次操作之前和之后的commit和history都会保留,并且把这次撤销,作为一次最新的提交。

revert可以针对历史中任何一个提交。

​git revert HEAD                //撤销前一次 commit

git revert HEAD^               //撤销前前一次 commit git revert commit_id //

(比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存

reset重置

回退到某一版本。提交记录也会被撤销。

reset只能从当前提交向前回溯。

git reset <file>   //从缓存区移除特定文件

git reset   //取消所有文件的缓存,但不会撤销对文件的修改

git reset --hard   //清除所有未提交的更改

git reset <commit>   //将缓冲区重设到某个提交,但所有<commit>之后的更改还保留在工作目录中

git reset --hard <commit>   //将缓冲区和工作目录都重设到这个提交,清除了<commit>之后的所有更改。


git clean

git clean 命令将未跟踪的文件从你的工作目录中移除。

git clean 是无法撤消的。

git clean 命令经常和 git reset --hard 一起使用。记住,reset 只影响被跟踪的文件,所以还需要clean来清理未被跟踪的文件。

git clean -n    //不会真的执行删除,而是告诉你哪些文件会被删除

git clean -f <path>    //-f强制删除的标记在移除文件时必须存在

git clean -df   //移除文件及目录

git clean -xf   //移除当前目录下的文件,以及git忽略的文件​


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:hwclouds.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。