这时刻我们看到的差别是 暂存区 和 本地仓库 之间的差别。
检查修改
已提交,未推送
- git diff master origin/master
如今,我们把修改大年夜 暂存区 提交到 本地仓库 ,再看一下差别。先履行 git commit ,然后再履行 git diff --cached ,没有差别,履行 git diff master origin/master ,可以看履新别:

在这里, master 就是你的 本地仓库 ,而 origin/master 就是你的 长途仓库 , master 是主分支的意思,因为我们都在主分支上工作,所以这里两边都是 master ,而 origin 就代表长途。
撤销修改
懂得清跋假使何检查各类修改之后,我们开端测验测验各类撤销操作。
已修改,未暂存

- git checkout .
或者
来进行撤销操作。

可以看到,在履行完 git checkout . 之后,修改已被撤销, git diff 没有任何内容了。
一对反义词
git add . 的反义词是 git checkout . 。做完修改之后,如不雅你想向前走一步,让修改进入 暂存区 ,就履行 git add . ,如不雅你想向撤退撤退一步,撤销刚才的修改,就履行 git checkout . 。
已暂存,未提交
你已经履行了 git add . ,但还没有履行 git commit -m "comment" 。这时刻你意识到了缺点,想要撤销,你可以履行:
如不雅我们只是在编辑器里修改了文件,但还没有履行 git add . ,这时刻我们的文件还在 工作区 ,并没有进入 暂存区 ,我们可以用:
- git reset
- git checkout .
- git reset --hard
或者
- git reset --hard
git reset 只是把修改退回到了 git add . 之前的状况,也就是说文件本身还处于 已修改未暂存 状况,你如不雅想退回 未修改 状况,还须要履行 git checkout . 。
或许你已经留意到了,以上两个步调都可以用同一个敕令 git reset --hard 来完成。是的,就是这个强大年夜的敕令,可以一步到位地把你的修改完全恢复到 未修改 的状况。
已提交,未推送
你的手太快,你既履行了 git add . ,又履行了 git commit ,这时刻你的代码已经进入了你的 本地仓库 ,然而你懊悔了,怎么办?不要焦急,还有办法。
- git reset --hard origin/master
【编辑推荐】
- GitHub上最风行的函数响应式编程库:ReactiveCocoa与RxSwift框架大年夜比较
- 推荐给法度榜样员GitHub中的七大年夜顶级临盆力对象
- git应用杂记
- 七条简单敕令让您玩转Git
- 2017 Android GitHub常用开源框架汇总
照样这个 git reset --hard 敕令,只不过此次多了一个参数 origin/master ,正如我们膳绫擎讲过的, origin/master 代表 长途仓库 ,既然你已经污染了你的 本地仓库 ,那么就大年夜 长途仓库 把代码取回来吧。
已推送
很不幸,你的手实袈溱是太快了,你既 git add 了,又 git commit 了,并且还 git push 了,这时你的代码已经进入 长途仓库 。如不雅你想恢复的话,还好,因为你的 本地仓库 和 长途仓库 是等价的,你只须要先恢复 本地仓库 ,再强迫 push 到 长途仓库 就好了:
- git reset --hard HEAD^
推荐阅读
Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 同时《办法》规定,收集餐饮办事第三方平台供给者须要实施建立食物安然相干轨制、设置专门的食物安然治理>>>详细阅读
本文标题:Git的4个阶段的撤销更改命令分析
地址:http://www.17bianji.com/lsqh/38786.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示