问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Mac如何恢复git数据

发布网友 发布时间:2022-04-23 04:15

我来回答

1个回答

热心网友 时间:2023-10-14 11:58

撤销一个“已公开”的改变

场景: 你已经执行了 git push, 把你的修改发送到了 GitHub,现在你意识到这些 commit 的其中一个是有问题的,你需要撤销那一个 commit.

方法:

复制代码代码如下:git revert <SHA>

原理: git revert 会产生一个新的 commit,它和指定 SHA 对应的 commit 是相反的(或者说是反转的)。如果原先的 commit 是“物质”,新的 commit 就是“反物质” — 任何从原先的 commit 里删除的内容会在新的 commit 里被加回去,任何在原先的 commit 里加入的内容会在新的 commit  里被删除。

这是 Git 最安全、最基本的撤销场景,因为它并不会改变历史 — 所以你现在可以  git push 新的“反转” commit 来抵消你错误提交的 commit。

撤销“本地的”修改

场景: 一只猫从键盘上走过,无意中保存了修改,然后破坏了编辑器。不过,你还没有 commit 这些修改。你想要恢复被修改文件里的所有内容 — 就像上次 commit 的时候一模一样。

方法:

复制代码代码如下:git checkout -- <bad filename>

原理: git checkout 会把工作目录里的文件修改到 Git 之前记录的某个状态。你可以提供一个你想返回的分支名或特定 SHA ,或者在缺省情况下,Git 会认为你希望 checkout 的是 HEAD,当前 checkout 分支的最后一次 commit。

记住:你用这种方法“撤销”的任何修改真的会完全消失。因为它们从来没有被提交过,所以之后 Git 也无法帮助我们恢复它们。你要确保自己了解你在这个操作里扔掉的东西是什么!(也许可以先利用 git diff 确认一下)
Git仓库撤销至前一次提交时的状态

复制代码代码如下:$ git checkout <SHA>


“”是你想查看的提交拥有的哈希值Hash Code中前8至10个字符。 这个命令会使<HEAD>指针脱离detach,可以让你在不检出check out任何分支的情况下查看代码——脱离HEAD并不像听上去那么可怕。如果你想在这种情况下提交修改,你可以通过创建新的分支来实现:

复制代码代码如下:$ git checkout -b <SHA>


要想回到当前的工作进度,只需要检出check out你之前所在的分支即可。


撤销最近一次代码提交
有时候你可能会不小心提交了错误的文件或一开始就遗漏了某些东西。下面这三步操作可以帮助你解决这个问题。

复制代码代码如下:
$ git reset --soft HEAD~1
# 对工作文件进行必要的更改
$ git add -A .
$ git commit -c ORIG_HEAD


你执行第一个命令时,Git会将HEAD指针后移到此前的一次提交,之后你才能移动文件或作必要的修改。

然后你就可以添加所有的修改,而且当你执行最后的命令时,Git会打开你的默认文本编辑器,其中会包含上一次提交时的信息。如果愿意的话,你可以修改提交信息,或者你也可以在最后的命令中使用-C而不是-c,来跳过这一步。


撤销合并Merge
要想撤销合并,你可能必须要使用恢复命令HARD RESET回到上一次提交的状态。“合并”所做的工作基本上就是重置索引,更新working tree(工作树)中的不同文件,即当前提交()代码中与HEAD游标所指向代码之间的不同文件;但是合并会保留索引与working tree之间的差异部分(例如那些没有被追踪的修改)。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
男人醉女人累原歌 我大概在2009年玩的很早的一款冒险动作游戏有一关是埃及狗头人主角捡武... 提成点数怎么算公式 Huamei/华美每日粗粮粗纤维饼-适用对象 0pp01107格式化后成白屏且不能开机怎么办 五邑大学是市属还是省属 五邑大学校区有几个 窝瓜焖荷包蛋怎么做? 达科塔·芬妮简要生平 湖北自动冷库多少钱 小米贷款逾期怎么协商还本金 git恢复到某个分支中的某一个commit命令是什么意思? 小米袋子贷款打不开,怎么去还款 现在可以通过苹果手机siri控制的有哪些智能家居品牌呢? 商业银行贷款,应当遵守那些资产负债管理的规定? git 怎么在网页上恢复删除分支 IPhone可以捷径控制米家智能家居吗? 商业银行贷款工作规程的三个阶段内容及优点缺点 听说siri可以控制家中的智能家居了,这是怎么回事? 小米贷还款方式有哪些? 你们知道什么牌子的智能家居产品能用苹果手机控制么? 小米随星借(原小米贷款)怎么还款? 苹果全屋智能家居的解决方案怎么做? 商业银行的借款业务有哪几种 苹果HomeKit能控制Aqara Home的传感器么? iphone 智能家居怎么用 商业性银行贷款有哪些? 全家都是苹果手机,能控制欧瑞博的智能家居吗? iPhone里的Homekit怎么用啊? 商业银行贷款管理办法 如何恢复git reset 小米贷款软件里面的马上金融消失了,如何还款啊,自动还款吗 如何恢复 git reset 如何找回git 中丢失的提交 小米贷款怎么还? git如何撤销删除的远程分支20170819 14:29 这小米贷款怎么看怎么还钱 git 恢复一个被删除的文件,本地已经删除很久了,而且不知道commit_id ,只记得文件名 小米借贷逾期无法手动还货,如何手动还款 git恢复到没有分支的状态 小米贷款怎么扣款? 使用vscode中的git不小心删除文件,怎么恢复 请问小米贷款还款日没有自动扣款应该怎么解决呢? git,本地仓库分支下的一个项目文件夹被误删了,怎么办,在线等。。。。 git怎样回退到上一个 用键盘不能切换输入法怎么办 如何处理Git中放弃了的分支而不删之 git删除分支后,会对该分支上的标签有影响吗? 为什么输入法无法切换 Git怎样撤销一次分支的合并Merge