当前播放: 22 | 如何让工作区的文件恢复为和暂存区一样?
00:00 / 00:00
高清
  • 高清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看
课程目录
第一章:Git基础 (13讲)
01 | 课程综述
免费
02 | 安装Git
免费
03 | 使用Git之前需要做的最小配置
免费
04 | 创建第一个仓库并配置local用户信息
05 | 通过几次commit来认识工作区和暂存区
06 | 给文件重命名的简便方法
07 | 通过git log查看版本演变历史
08 | gitk:通过图形界面工具来查看版本历史
09 | 探密.git目录
免费
10 | commit、tree和blob三个对象之间的关系
11 | 小练习:数一数tree的个数
12 | 分离头指针情况下的注意事项
13 | 进一步理解HEAD和branch
第二章:独自使用Git时的常见场景 (16讲)
14 | 怎么删除不需要的分支?
15 | 怎么修改最新commit的message?
免费
16 | 怎么修改老旧commit的message?
17 | 怎样把连续的多个commit整理成1个?
18 | 怎样把间隔的几个commit整理成1个?
19 | 怎么比较暂存区和HEAD所含文件的差异?
20 | 怎么比较工作区和暂存区所含文件的差异?
21 | 如何让暂存区恢复成和HEAD的一样?
22 | 如何让工作区的文件恢复为和暂存区一样?
23 | 怎样取消暂存区部分文件的更改?
24 | 消除最近的几次提交
25 | 看看不同提交的指定文件的差异
26 | 正确删除文件的方法
27 | 开发中临时加塞了紧急任务怎么处理?
免费
28 | 如何指定不需要Git管理的文件?
29 | 如何将Git仓库备份到本地?
第三章:Git与GitHub的简单同步 (4讲)
30 | 注册一个GitHub账号
31 | 配置公私钥
32 | 在GitHub上创建个人仓库
33 | 把本地仓库同步到GitHub
第四章:Git多人单分支集成协作时的常见场景 (5讲)
34 | 不同人修改了不同文件如何处理?
35 | 不同人修改了同文件的不同区域如何处理?
36 | 不同人修改了同文件的同一区域如何处理?
37 | 同时变更了文件名和文件内容如何处理?
38 | 把同一文件改成了不同的文件名如何处理?
第五章:Git集成使用禁忌 (2讲)
39 | 禁止向集成分支执行push -f操作
40 | 禁止向集成分支执行变更历史的操作
第六章:初识GitHub (6讲)
41 | GitHub为什么会火?
42 | GitHub都有哪些核心功能?
免费
43 | 怎么快速淘到感兴趣的开源项目?
44 | 怎样在GitHub上搭建个人博客
45 | 开源项目怎么保证代码质量?
46 | 为何需要组织类型的仓库?
第七章:使用GitHub进行团队协作 (10讲)
47 | 创建团队的项目
48 | 怎样选择适合自己团队的工作流?
49 | 如何挑选合适的分支集成策略?
50 | 启用issue跟踪需求和任务
51 | 如何用project管理issue?
52 | 项目内部怎么实施code review?
53 | 团队协作时如何做多分支的集成?
54 | 怎样保证集成的质量?
55 | 怎样把产品包发布到GitHub上?
56 | 怎么给项目增加详细的指导文档?
第八章:GitLab实践 (6讲)
57 | 国内互联网企业为什么喜欢GitLab?
免费
58 | GitLab有哪些核心的功能?
59 | GitLab上怎么做项目管理?
60 | GitLab上怎么做code review?
61 | GitLab上怎么保证集成的质量?
62 | 怎么把应用部署到AWS上?
22 | 如何让工作区的文件恢复为和暂存区一样?

22 | 如何让工作区的文件恢复为和暂存区一样?

苏玲
携程代码平台负责人
全集18832
新人首单 ¥9.9 原价 ¥68
8
登录 后留言

精选留言(17)

  • 已暂存区为中心

    暂存区与HEAD比较:git diff --cached

    暂存区与工作区比较: git diff

    暂存区恢复成HEAD : git reset HEAD

    暂存区覆盖工作区修改:git checkout
    2018-12-21
    40
  • mickey
    1.暂存区恢复成HEAD:git reset
    2.工作区恢复成暂存区:git checkout
    2018-12-19
    17
  • 火腿
    未执行git add之前, 暂存区的内容是什么?

    作者回复: 好问题。就是 HEAD 对应的内容,或分支最新commit的内容

    2019-01-21
    8
  • 努力呼吸
    小tips:Git 2.23之后用git switch和git restore来替代git checkout功能,git switch替换git checkout切换分支的功能,git restore替换对工作区文件进行回复的功能。

    作者回复: 👍

    2020-02-13
    6
  • 君莫惜
    放弃工作区的更改: git checkout -- fileName
    放弃暂存区(撤销git add):git reset HEAD
    2019-06-30
    3
  • Michael翔
    文件切换对于新手,想要记熟确实挺难的。但是,结合老师的讲解之后,再去看看 git status 之后,就明白很多了,这时候只要看看 git status 就知道该怎么实现目标了
    2019-01-19
    2
  • 小猛
    Git 2.23之后用git switch和git restore来替代git checkout功能,git switch替换git checkout切换分支的功能,git restore替换对工作区文件进行回复的功能。

    作者回复: 嗯,补充🉐️很好。 采用 switch 和 restore 对git新人来说更容易理解一些。

    2020-08-04
  • Geek_1a7057
    我这里显示的不是git checkout而是git restore

    作者回复: 不同git版本引起的,你的版本更高。看来git还是不断在做优化的。

    2020-06-14
  • 轻风悠扬
    你好老师,git reset (--mixed) 和 git reset HEAD有什么区别

    作者回复: hi, 看一下 git 的 help 文档吧,里面写了:
    --mixed是缺省的设置,不写就等于 --mixed 。
    另外,这个命令的这种用法,不写 HEAD 就意味着 HEAD 。

    参考:
    git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<comm
    it>]
    In the third form, set the current branch head (HEAD) to <commit>

    以及参考:
    --mixed
                   Resets the index but not the working tree (i.e., the changed
                   files are preserved but not marked for commit) and reports what
                   has not been updated. This is the default action.

    2020-06-14
  • 卡尔
    老师,git log记录的第一条记录,会不会存在parent?我依稀记得有一特定的引用能找到它,那个引用是啥呢?

    作者回复: 你google搜 git log the first commit 有答案。

    我试了可行的命令:
    git rev-list —max-parents=0 HEAD

    或者 git log —reverse

    2020-05-20
  • 落曦
    用工作区的内容使用指令reset
    用暂存区的内容使用指令checkout
    git checkout -- index.html
    2020-04-19
  • 分辨出下面四个区域比较关键,各种命令就是将对应的文件在这几个区域来回的倒腾。
    工作区:自己使用工具在自己电脑上编码的地方
    本地仓库:git管理的地方,在自己的电脑上也有一份完整的代码——add
    暂存区:自己编写的代码托管给git管理的地方——commit
    远程仓库:在服务器上存储一份完整代码的地方——push
    所有的变更历史都会记住,这个很牛逼,所以怎么玩都行,玩坏了可以回滚过来!
    2020-03-01
    2
  • 娜么伟大
    如何将工作区直接恢复为HEAD.

    作者回复: 暴力一点的话,可直接 reset --hard 。

    2019-11-20
  • 钱洋彪
    有个问题没想明白,
    前置条件:修改index.html并提交至暂存区。
    操作步骤:
    1. 此时使用`git diff`比较工作区和HEAD,发现两者相同;
    2. 使用`git diff --cached`比较暂存区和HEAD,发现index.html有修改;
    3. 使用`git checkout -- index.html`将工作区恢复成和暂存区一样,再使用`git diff`比较工作区和暂存区,发现两者还是相同的。
    疑问:上面的场景checkout不生效吗?这种情况只能使用'git reset HEAD'来将暂存区的内容还原到工作区吗?
    2019-10-13
    1
  • supermouse
    老师,好像不加中间那个「--」也能把工作区的文件恢复成和暂存区一样啊,下面是执行结果:
    $ git checkout index.html
    Updated 1 path from the index

    作者回复: 对的,执行结果的提示告诉我们从index(暂存区)更新了一个文件到工作区

    2019-04-22
  • salmon
    暂存区->HEAD:git reset
    工作区恢->暂存区:git checkout
    2019-04-01
  • 箭指流云
    git diff 比较工作区和暂存区的区别
    git diff 比较暂存区和HEAD之间的区别
    git reset 将暂存区恢复到和HEAD一样,可以恢复到指定的commit
    git checkout -- fileName 将工作区指定文件恢复到和暂存区一样
    2019-02-24
收起评论
看过的人还看
数据结构与算法之美

王争  前Google工程师

80讲 | 92135 人已学习

新人首单 ¥19.9 原价 ¥129
趣谈网络协议

刘超  网易研究院云计算技术部首席架构师

51讲 | 46492 人已学习

新人首单 ¥19.9 原价 ¥99
MySQL实战45讲

林晓斌  网名丁奇,前阿里资深技术专家

49讲 | 60229 人已学习

新人首单 ¥19.9 原价 ¥129
左耳听风

陈皓  网名“左耳朵耗子”,资深技术专家,骨灰级程序员

109讲 | 47045 人已学习

新人首单 ¥69.9 原价 ¥299