【Git】撤销操作

2019-06-23  本文已影响0人  失语失芯不失梦

撤销add操作

如果是在“Changes to be committed” 这行下面的,就说明是已暂存状态。也就是说这些文件被add过,但是没有commit。如果此时提交,那么该文件此时此刻的版本将被留存在历史记录中。但是这些文件是被.ignore忽略的,所以我们应该取消add。

git reset :可以将当前仓库回退到历史的某个版本

第一种用法:回退到上一个版本(HEAD代表当前版本,有一个^代表上一个版本,以此类推)

git reset --hard HEAD^

第二种用法:回退到指定版本(其中d7b5是想回退的指定版本号的前几位)

git reset --hard d7b5

git reset HEAD 路径/文件名: 对某个文件进行撤销

git reset HEAD :如果不指定文件名,则撤销add的所有文件

撤销文件修改

如果“Changes not staged for commit” 这行下面,说明已跟踪文件的内容发生了变化,但还没有放到暂存区。

git checkout -- 路径/文件名:撤销对该文件的修改

git checkout -- . :撤销对所有文件的修改

执行git commit 之后的撤销

git log:查看提交记录

git reset commitID :可以撤销,不对代码修改进行撤销,可以继续进行git commit提交修改

git reset --soft commitID :可以回退commit,代码属于git add 的那个状态,软重置,只回退commit信息,如果需要提交,继续 commit就行。

git reset --mixde commitID :和第一种情况一样,默认不写mixed就是第一种,只末流源码,回退commit和index信息,如果需要提交,还需要执行git add ,和 git commit,

git reset --hard commitID :什么都不要了,彻底回到上个版本.

执行 git push 之后

git revert commitID :会把此次操作之前和之后的commit都会保留,并把这次撤销作为一次新的commit

git reset 和 git revert 比较

git reset 是还原本地index的状态或者修改本地head的位置,一般适用于,比如我们本地有多个commit,比如1,2,3这时候我们不想要2,3,了,想从1,开始开发,然后新建一个分支,这时候就用git reset ,撤销那两次修改,然后继续开发,只影响本地,不影响远程,可以根据自己的需求选择软重置还是硬重置

git revert 是撤销push到远程的某次提交,用一次新的提交覆盖原来的修改。

上一篇下一篇

猜你喜欢

热点阅读