下载APP
登录
关闭
讲堂
算法训练营
Python 进阶训练营
企业服务
极客商城
客户端下载
兑换中心
渠道合作
推荐作者
当前播放: 12 | 分离头指针情况下的注意事项
00:00 / 00:00
标清
  • 标清
1.0x
  • 2.0x
  • 1.5x
  • 1.25x
  • 1.0x
  • 0.5x
网页全屏
全屏
00:00
付费课程,可试看

玩转Git三剑客

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

精选留言(21)

  • 2018-12-21
    如果我分离头指针后做了修改并commit了,然后切换到master分支上,我之前做的修改什么时候清除,如果我过个十天半月又记起来 了能不能找回来,还是说git有个自动清除的期限。
    8
  • 老师您好, 那分离头指针在企业或日常使用中, 到底有哪些具体的适用地点呢?

    作者回复: 如果临时想基于某个commit做变更,试试新方案是否可行,就可以采用分离头指针的方式。测试后发现新方案不成熟,直接reset回其他分支即可。省却了建、删分支的麻烦了。

    6
  • 2018-12-12
    是不是用git checkout -b 就能避免分离头指针?

    作者回复: 你这想法有点意思,加了 -b 就是新建分支了,这样肯定不会出现分离头指针。

    另外,多说一句,分离头指针并不可怕,也有使用场景。请思考一下,什么情况下用分离头指针?

    6
  • 2019-01-10
    git checkout commitId:会出现分离头指针的情况,这种情况下比较危险,因为这个时候你提交的代码没有和分支对应起来,当切换到其他分支的时候(比如master分支),容易丢失代码;
        但是分离头指针也有它的应用场景,就是在自己做尝试或者测试的时候可以分离头指针,当尝试完毕没有用的时候可以随时丢弃,但是如果觉得尝试有用,那么可以新建一个分支,使用 git branch <新分支的名称> commitId

    作者回复: 👍

    4
  • 2018-12-27
    我怎么看老师说他们使用-am的时候,一脸无奈的样子😂

    作者回复: 因为我代码开发得少,在搭建git测试环境中,为了求快也这么用。

    感觉浪费了git暂存区,想来有些可惜

    2
  • 2018-12-27
    老师,git在权限管理方面真的是一筹莫展吗?一个完整的项目,如果我希望每个人只能看到自己负责的项目,这个有办法实现吗?
    或者退而求其次,每个人只能编辑自己负责的部分,别人的只能看不能动?

    作者回复: 现在的代码平台,比如 gitlab 高版本,对于文件夹和文件提供了lock功能,别人只能看不能修改。

    1
  • 2018-12-16
    打卡
    detached HEAD
    如何理解HEAD,很重要

    作者回复: 👍

    1
  • 2018-12-15
    分离头指针 git 会在什么时候回收呢? 是 git 自动回收呢? 还是需要手动执行 类似 git gc 这样的命令呢?
    1
  • _
    2018-12-11
    老师您好,分离头指针 如果有多个commit没有挂载到branch上,是不是可以用git branch new_branch_name xxxx
    批量挂载呢?还有这个new_branch_name 是不是可以挂载到现有的 branch分支呢? 谢谢

    作者回复: 脑筋动起来了,👍
    用了branch命令,一次只能建一个分支。可以有多个分支对应到一个commit的,所以你最后一个问题的答案是“可以”

    1
    1
  • 2019-10-14
    关于分离头指针的使用场景,是指退回到某一个提交,以前我都是git reset 到某个提交实现的,这两种是不是类似?
  • 2019-10-11
    所以探秘.git目录中讲HEAD是代表仓库当前所在的分支并不严谨,分离头指针的情况下,HEAD并不表示任何分支,只是代表某个commit。
  • 2019-06-30
    git每一次提交之后都会产生一个commit对象,每个commit对象会包含一个tree(文件夹),这个tree会包含其他的tree或blob(文件)
  • 2019-04-23
    老师,想问一下,我在本地的子模块不知道怎么就分离了头指针,不仅commit了,还push到远程仓库了。现在把远程的仓库的head指针拉了回来。但是commit的那个东西还是在远程仓库中,不知道怎么删除,递归克隆的时候会报错,想问问这个怎么办

    作者回复: 对子模块远程仓库的分支做push -f ,应该可以搞定的

  • 2019-04-02
    如果是测试的话直接回滚到某次提交,然后检出分支测试不就行了吗?没必要使用分离头指针吧。

    作者回复: 如果没有分支,就得建分支,测试完毕又得删掉,有人会嫌麻烦的。这些人会利用分离头指针的方式

  • 2019-03-20
    修改已经跟踪的文件,可以直接提交,
    未跟踪的文件,还是要先 add

    作者回复: 是的。

  • 2019-03-20
    git commit -am "test"
    On branch Test
    Your branch is up-to-date with 'origin/Test'.
    Untracked files:
        test.php

    似乎不能直接 am
    展开
  • 2019-03-19
    苏老师,请问分离头指针什么情况下会被git丢弃,我试了忽略提示创建分支的提示,切换分支后继续commit,然后再执行他先前给出的提示一样可以根据分离头指针创建新的分支。

    作者回复: 切换分支前处于分离头指针状态下的文件的变更,你尝试看看还在吗?

  • 2019-02-24
    讲的不错,虽然只看了前面几节
  • 2019-01-13
    苏玲老师您好!我按照操作发现,分离头指针后 git status 结果如下:
    $ git status
    HEAD detached at be8dd07
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
            modified: styles/style.css
    (=============多出部分================)
    Untracked files:
      (use "git add <file>..." to include in what will be committed)
            das
    no changes added to commit (use "git add" and/or "git commit -a")

    请问我如下部分你提示的 das 是干嘛的呢?但是对我接下来的操作这个是没有影响的呢!
    展开
  • 2018-12-29
    老师,如果我想将分离头指针的commit添加在master分支上,是不是用git merge 新建分支。

    作者回复: 分离头指针对应的commit,你如果认为有用需要保留,那就用新分支把它保留下来吧。

    如果当下无master分支,可以在分离头指针状态下,git checkout -b master HEAD 。