首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

原创 | Git操作文件的时候手贱了,怎么恢复?

所以只是这样删除了之后,即使我们再次commit提交,git会记录成一次对这个文件的删除操作。虽然我们看不到这个文件了,但是它仍然在git当中占据空间。...比如说我们在add file的commit当中提交了文件,在delete file的commit当中删除了文件,在delete以及之后的提交当中,是没有这个文件的记录的,但是在add file这个commit...只想撤销,不想删除 除了我们不小心提交了本该要删除的内容,还有一种很常见的情况是我们的文件是很重要的,但是我们不想提交到git。...就比如我们git add了之后才发现某一个文件的修改错了,我们想要把它恢复到之前的状态,这时候应该怎么操作呢?...我们在第五篇里加上了一行废话,但是等我们git add了之后才发现第五篇里有这么一个无用的改动。这时候应该怎么操作呢? ?

71430

【Git笔记3】关于撤销、删除、恢复的那些事儿

,但在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。...留下一个问题:如何丢弃第二次工作区的修改呢? 如何撤销没有add的修改? 场景:当你乱改了工作区的某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。...如何恢复版本库中删除的文件? 在版本库中把文件删除后的你呀,后悔了,怎么把删除的test.txt找回来呢?...注意:但是可能会影响你其他修改但是未提交的其他内容的。 如何恢复工作区的文件?...因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版:git checkout -- git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以

2.2K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【Git笔记3】关于撤销、删除、恢复的那些事儿

    ,但在工作区的第二次修改并没有放入暂存区,所以,git commit只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。...留下一个问题:如何丢弃第二次工作区的修改呢? ? 如何撤销没有add的修改? 场景:当你乱改了工作区的某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。...如何恢复版本库中删除的文件? 在版本库中把文件删除后的你呀,后悔了,怎么把删除的test.txt找回来呢?...注意:但是可能会影响你其他修改但是未提交的其他内容的。 ? 如何恢复工作区的文件?...因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版:git checkout -- git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以

    84320

    没想到,Git居然有3种“后悔药”!

    ,直到有一次… 小明:完了,完蛋了 洋仔:怎么了,一惊一乍的 小明:我把错误代码用git commit后还push到线上代码库了!...但是我们要先知道一些git的基础知识,你才能更好的理解git命令的作用 预备知识 git将项目的存储分为4部分,每部分有自己作用, 见下图: ?...commit_id后的所有提交,都去除,并保留修改的代码在本地的区域,也就是Workspace中 小明:啊哈,这样的话我就可以把错误代码修改后再提交了; 但是我已经push到线上仓库的数据怎么办呢?...适用场景: 在项目开发中,突然发现在前几次的提交中,有一次提交中包含一个bug; 当然我们可以进行一个新的修改,然后再提交一次; 但是,不优雅哈哈; 我们可以直接重做有bug的commit~ 为什么不直接去再添加一个...后悔药-git checkout 小明:还有最后一个问题: 如果我在一次开发中,发现某个文件修改错误了,想要将文件恢复到刚pull代码时的状态怎么办呢? 洋仔:简单!

    1K20

    Git本地仓库(Repository)详解

    现在你回退到某个版本中,已经关掉了Git bash。但是呢,你又后悔了,想恢复到新版本中,但是呢?你又找不到commit id了,那又该怎么办呢?...大家可以看到,在“.git”目录中有很多文件,其中一个重要的文件index,就是我们说的提交区/暂存区(stage/index)。...大家可以看到我们第二次没有被提交,怎么会这样呢?细心的博友可以看到我们第二次修改后,直接执行 git commit了。...但是,在工作区的第二次修改并没有放入暂存区,所以,“git commit”只负责把暂存区的修改提交了,也就是第一次的修改被提交了,第二次的修改不会被提交。...git rm 命令用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

    1.5K50

    git入门篇(4)--版本穿梭

    暂存区文件删除 我们都清楚,我们要更新版本库首先git add一个文件,这时候这个文件所做的修改就会添加到暂存区,但是这时候如果我们发现添加错文件了,我们如何删除暂存区的文件呢?...只清除暂存区的某个文件 在git暂存区有多个文件,如果我们只想要从暂存区删除其中一个文件,那我们可以使用命令: git rm --cached hello.txt 清空暂存区文件并且删除工作目录对应文件...在git暂存区有多个文件,如果我们只想要从暂存区删除其中一个文件,并且将这个文件同时从工作目录删除,那我们可以使用命令: git rm -f hello.txt 清空暂存区 清空暂存区所有缓存文件...撤销修改 有朋友看到这个标题撤销修改,会纳闷撤销修改不就是将文件从暂存区删除,刚才已经提到过了,但是如果我们需要撤销工作区的修改呢,也就是将hello.txt撤销修改回退到上一次提交的版本如何做呢?...我们可以看到我是用命令回退到上一个版本,再次git log查看版本log,发现我刚才的版本由于回退丢失了,如果我版本回退后悔了,要如何恢复到刚才的新版本呢?

    56310

    git撤销修改各种情况

    四、重置本地的修改 场景:在本地提交了一些东西(还没有push),希望撤销前面的三次提交。...五、在撤销了本地修改之后再恢复 场景:提交了几个commit后,用git reset –-hard撤销了这些修改,希望还原这些修改。...八、大量的撤销/恢复 场景:进行了很多次提交,但是发现只需要其中一部分,其他提交需要舍弃。 方法:git rebase–i 原理:-i 参数让rebase进入“交互模式”。...九、停止追踪一个文件 场景:偶然把application.log加到代码库里了,现在每次运行应用,git都会报告在application.log里有未提交的修改。...你把*.login放到了.gitignore文件里,可文件还是在代码库里,怎么才能告诉git撤销对这个文件的追踪呢?

    1.5K100

    Git使用本地仓库之基本操作 转

    ②Git每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!...当然如果你可以add多个文件后再一次性commit,不过如果我们改动的文件很多的话,我们可以git add .一次添加全部,但有一些是几百年都不变一次的又或者自动生成的,比如lib,gen,bin文件夹等等...我们取其中一小部分来分析: commit defd8af52be5183dfceb3e5cf23f78ea47d013b0 Author: coder-pig Date...9、版本回退 第五点我们教了大家撤销未提交的修改,但加入提交了,我们想回退到之前的某一个版本怎么办?...回退后,你突然后悔了,想回退回新的那个版本,可是遗憾的是,你键入git log却发现没有了最新的那个版本号,这怎么办呢... 没事,Git中给你提供了这颗"后悔药",Git记录着你输入的每一条指令呢!

    60320

    如何在 Git 里撤销(几乎)任何操作

    撤销一个“已公开”的改变 场景: 你已经执行了 git push, 把你的修改发送到了 GitHub,现在你意识到这些 commit 的其中一个是有问题的,你需要撤销那一个 commit....(也许可以先利用 git diff 确认一下) 重置“本地的”修改 场景: 你在本地提交了一些东西(还没有 push),但是所有这些东西都很糟糕,你希望撤销前面的三次提交 — 就像它们从来没有发生过一样...你不能用 git reflog 来恢复另一个开发者没有 push 过的 commit。 那么…你怎么利用 reflog 来“恢复”之前“撤销”的 commit 呢?...大量的撤销/恢复 场景: 你向某个方向开始实现一个特性,但是半路你意识到另一个方案更好。你已经进行了十几次提交,但你现在只需要其中的一部分。你希望其他不需要的提交统统消失。...你把 *.login 放到了 .gitignore 文件里,可文件还是在代码库里 — 你怎么才能告诉 Git “撤销” 对这个文件的追踪呢?

    1K60

    Git(一)之基本操作详解

    在我已经对lance.txt文件做了三次修改了,那么我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log 演示如下所示: ?   ...4)我们可以使用git log来查看一下历史记录 ?     5)我们看到 增加cccccc 内容我们没有看到了,但是现在我想回退到最新的版本,如:有cccccc的内容要如何恢复呢?       ...我们可以通过版本号回退,使用命令方法如下:  git reset  --hard 版本号 ,但是现在的问题假如我已经关掉过一次命令行或者333内容的版本号我并不知道呢?       ...在我未提交之前,我发现添加dddddd内容有误,所以我得马上恢复以前的版本,现在我可以有如下几种方法可以做修改:     第一:如果我知道要删掉那些内容的话,直接手动更改去掉那些需要的文件,然后add添加到暂存区...第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset  --hard HEAD^   但是现在我不想使用上面的2种方法,我想直接想使用撤销命令该如何操作呢?

    734111

    【工具】Git 常用操作 - 备忘录

    ,虽然我根本没用过,所以这才是我总结这篇文章的目的啊,你看多少盲点啊 大概有两个用处 1、修改上一条提交记录的注解 比如当你提交了记录,但是突然发现这个记录的注解写得不是很好,你想重写怎么办,用这个命令就对了...,放弃所有修改,从上次保存文件开始编辑 2、给上一条已经提交的记录,额外新添加更多修改 比如我已经提交了一条记录,新增了一个文件 1.txt 但是后面发现我少提交了一个文件 2.txt,现在我要把 2....blob,这样才能在回退的时候,完全恢复内容 ?...但是 rebase 到底是怎么操作的呢? ?...但是需要注意的是,虽然 stash 可以把 暂存区和工作区的内容都保存起来 但是恢复的时候,会把所有内容都只恢复到工作区,就是原来在暂存区的现在也跑到工作区了, 6 --- git stash pop

    46731

    Git 介绍

    举个例子,现在我有一个项目,里面有两个文件,分别是 a.html 和 b.html。 a.html ....那不用 git 的情况下,大家是如何做到两个人同时维护一个项目的代码呢?...git 方式实现 通过 git 方式实现,那么项目的真正文件就不会在李白或者小明其中一个人的电脑上(而是在线上的仓库,例如 gitee 或者 github)。...小明修改 a.html 后无需告知李白改了哪里,直接通过 git 的提交功能,把自己电脑上的代码更新到线上仓库上面,然后告诉李白,我代码提交了上去了线上仓库了。...这里是简化版的 git 使用流程 使用 git 的优势 高效率协同开发:不需频繁的发送文件给其他同事去更新 代码文件线上存储,更加安全可靠:不会因为电脑损坏而丢失代码,还可以恢复到指定版本的代码 方便错误跟踪

    20230

    撤销本地提交-每天三分钟玩转Git (5)

    第 5 篇 撤销本地提交 上一章我们一起入门学习了git的基本概念和git基础操作,包括提交和同步代码、使用分支、出现代码冲突的解决办法、紧急保存现场和恢复现场的操作。...几乎已经足够我们使用Git参加协作开发了。但是在开发的过程中难免会出错,万一一不小心提交提交了不可饶恕的东西,难说会让我们丢掉工作,那怎么办呢。下面让我们一起来diss老板。...git add然后status查看新文件已经加入跟踪 git commit提交了这次的修改 撤消了本次提交 好了,刚刚我们“不小心”diss了我们的老板,要是被发现就完了,所幸还没有push,要快点撤消这些提交...git reset --soft head^撤消了本次提交,将工作区恢复到了提交前但是已经add的状态 将to_boss.txt的内容改成了my boss is a good boy!...好了,我们现在改成怕马屁的话了,虽然我并不赞成大家给老板拍马屁,但是刚刚骂老板的话实在把人吓得不轻。我们赶快把他提交掉吧,一会老板看见估计要给我加工资了。

    41710

    代码版本管理笔记 | Python 程序员也应该会的 Git 分支操作

    git checkout -b 分支名 这个时候远程分支还不存在,所以不能直接推送,需要在第一次推送的时候指定远程分支名 git push --set-upstream origin 分支名 合并分支...2 查看提交记录差异 - 查看新纪录 我基于生产分支上新建了一个 dev 分支,然后提交了代码;但某些原因,我忘记了我提交了几次修改,此时我就可以通过查看 dev 分支中有的记录而在生产分支中没有的记录...hard 到那个 commitid 即可 从历史版本中找回删除的文件 有时候,我们在某个版本中删除了文件,后来又突然发现需要这个文件,是可以恢复的;恢复之前首先确定要恢复的文件在哪一个版本( commit...合并指定的版本至其他分支 git cherry-pick 命令是一个使用频率比较低,但在需要使用的场景时候非常省事,比如说,你在 develop 分支中开发,提交了 10 个版本,只有 2 个版本是稳定可以测试的...,另外几个版本不可以,然后需要赶紧将两个稳定的版本提测,这个时候就可以使用 git cherry-pick 命令了 1、在 develop 分支找到稳定版本的 commitid 2、切换分支到 test

    39220

    Git撤销&回滚操作(git reset 和 get revert)

    俗话说,老虎也有打盹的时候。我们提交代码,也会有出错的时候。 我今天不小心把不该提交的文件给提交了。...# 丢弃全部 注意:git checkout – . 丢弃全部,也包括:新增的文件会被删除、删除的文件会恢复回来、修改的文件会回去。这几个前提都说的是,回到暂存区之前的样子。...: 场景一: 糟了,我刚把不想要的代码,commit到本地仓库中了,但是还没有做push操作!...场景二: 彻底完了,刚线上更新的代码出现问题了,需要还原这次提交的代码! 场景三: 刚才我发现之前的某次提交太愚蠢了,现在想要干掉它!...情况二:同时对多个文件执行了git add操作,但本次只想提交其中一部分文件 $ git add * $ git status 取消暂存 $ git reset HEAD 情况三

    37.8K65

    糟糕,在错误的分支开发了新功能,该怎么处理呢?

    其实当你在错误的分支开发了新功能之后,这里会有三种情况: 新功能还没有在本地进行commit(提交),也就是我这次遇到的情况 新功能已经在本地提交了,但是还没有push到远程仓库 新功能已经在本地提交了...,且push到了远程仓库 虽然我遇到的是第一种情况,那么当我解决这个问题之后,我很自然的就会想:如果遇到了另外两种情况我该怎么处理呢?...如果我们想查看最近一次快照跟生成快照当时已提交的文件之间的变化情况的话,可以使用命令git stash show。这个命令默认展示的是文件的差别统计。...新功能已经在本地提交了,但是还没有push到远程仓库 如果新开发的功能已经在本地提交了,但是我们开发的这个分支是一个错误的分支。这个时候根据情况的不同,可以有两种处理的方式。...新功能已经在本地提交了,且push到了远程仓库 第三种情况就是,我们已经把新开发的功能push到远程的仓库了,但是我们忽然发现新功能不应该在这个分支开发,我们这个时候应该怎么办呢?

    75720

    超详细的 Git 实战教程,傻瓜一看也会!

    现在我已经对readme.txt文件做了三次修改了,那么我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log 演示如下所示: ?...我们可以继续使用git log 来查看下历史记录信息,如下: ? 我们看到 增加333333 内容我们没有看到了,但是现在我想回退到最新的版本,如:有333333的内容要如何恢复呢?...我们可以通过版本号回退,使用命令方法如下: git reset --hard 版本号 ,但是现在的问题假如我已经关掉过一次命令行或者333内容的版本号我并不知道呢?...第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^ 但是现在我不想使用上面的2种方法,我想直接想使用撤销命令该如何操作呢?...并不是我不想提交,而是工作进行到一半时候,我们还无法提交,比如我这个分支bug要2天完成,但是我issue-404 bug需要5个小时内完成。怎么办呢?

    1.3K40

    Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!

    现在我已经对readme.txt文件做了三次修改了,那么我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log 演示如下所示: ?...我们可以继续使用git log 来查看下历史记录信息,如下: ? 我们看到 增加333333 内容我们没有看到了,但是现在我想回退到最新的版本,如:有333333的内容要如何恢复呢?...我们可以通过版本号回退,使用命令方法如下: git reset --hard 版本号 ,但是现在的问题假如我已经关掉过一次命令行或者333内容的版本号我并不知道呢?...第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^ 但是现在我不想使用上面的2种方法,我想直接想使用撤销命令该如何操作呢?...并不是我不想提交,而是工作进行到一半时候,我们还无法提交,比如我这个分支bug要2天完成,但是我issue-404 bug需要5个小时内完成。怎么办呢?

    1.1K20

    Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!(又一篇万字长文)

    现在我已经对readme.txt文件做了三次修改了,那么我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log 演示如下所示: ?...我们可以继续使用git log 来查看下历史记录信息,如下: ? 我们看到 增加333333 内容我们没有看到了,但是现在我想回退到最新的版本,如:有333333的内容要如何恢复呢?...我们可以通过版本号回退,使用命令方法如下: git reset --hard 版本号 ,但是现在的问题假如我已经关掉过一次命令行或者333内容的版本号我并不知道呢?...第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^ 但是现在我不想使用上面的2种方法,我想直接想使用撤销命令该如何操作呢?...并不是我不想提交,而是工作进行到一半时候,我们还无法提交,比如我这个分支bug要2天完成,但是我issue-404 bug需要5个小时内完成。怎么办呢?

    60900

    Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!

    现在我已经对readme.txt文件做了三次修改了,那么我现在想查看下历史记录,如何查呢?我们现在可以使用命令 git log 演示如下所示: ?...我们可以继续使用git log 来查看下历史记录信息,如下: ? 我们看到 增加333333 内容我们没有看到了,但是现在我想回退到最新的版本,如:有333333的内容要如何恢复呢?...我们可以通过版本号回退,使用命令方法如下: git reset --hard 版本号 ,但是现在的问题假如我已经关掉过一次命令行或者333内容的版本号我并不知道呢?...第二:我可以按以前的方法直接恢复到上一个版本。使用 git reset --hard HEAD^ 但是现在我不想使用上面的2种方法,我想直接想使用撤销命令该如何操作呢?...并不是我不想提交,而是工作进行到一半时候,我们还无法提交,比如我这个分支bug要2天完成,但是我issue-404 bug需要5个小时内完成。怎么办呢?

    34.7K103
    领券