• 一步
    2018-12-15
    git reset 有三个参数
    --soft 这个只是把 HEAD 指向的 commit 恢复到你指定的 commit,暂存区 工作区不变
    --hard 这个是 把 HEAD, 暂存区, 工作区 都修改为 你指定的 commit 的时候的文件状态
    --mixed 这个是不加时候的默认参数,把 HEAD,暂存区 修改为 你指定的 commit 的时候的文件状态,工作区保持不变

    作者回复: 👍

    
     12
  • L。__
    2018-12-14
    讲的很基础 很喜欢 期待老师快速更新

    作者回复: 好的,抓紧进度

    
     6
  • 阿耀
    2018-12-15
    之前用git用得迷迷糊糊,只是一顿乱add,commit,push,团队小也不是特别规范。看了老师的视频之后觉得讲得特别清晰有条理,让我重新认识了git,挖掘了git更多实用功能,对工作非常有帮助。
    同样也和一楼一样催下更新,特别期待将代码提交到远程仓库的时候,如何处理团队的各种协作情况~

    作者回复: 有收获,真好。

    
     3
  • Li Shunduo
    2018-12-18
    这节已经讲了如何取消暂存区的变更,那么对于已经提交的commit如何取消?

    作者回复: 分情况思考一下:

    1)最近一次commit想作废,也就是回到HEAD^(HEAD的父亲)

    2)不是最近一次的并且只有一个父亲的commit怎么取消?

    3)不是最近一次的并且有多个父亲的commit怎么取消?

    第3)题稍微有点搞,暂时可以不考虑

    
     2
  • Vee
    2018-12-15
    网上有说要加 --hard? 有什么区别吗?

    作者回复: reset命令不加 --hard,则暂存区的内容恢复成HEAD对应的内容,工作区的变更继续保留。

    如果加了 --hard,则不管工作区还是暂存区,内容都变回HEAD对应的内容。

    大家可以多实践一下。
    比较有意思的一个问题:暂存区一个readme文件,工作区对readme继续最变更,也就是工作区和暂存区的readme内容不一样了;请问:此时执行“git reset”命令,工作区的readme文件,可能会有哪几种情况?

    
     2
  • 六一
    2019-02-27
    git reset --hard 和git reset --mixed自己都动手试了一下看到了效果,但是git reset --soft,这个没太看出来效果,老师可以稍微给指点一下吗
    
     1
  • 万想
    2019-01-06
    老师,学完这一节后,我有两个疑问,劳烦老师可以帮助解答~

    1) 假定:HEAD、缓存区、工作区中的readme.md文件内容均不相同,【git reset --hard -- readme.md】命令和【git checkout HEAD -- readme.md】命令的执行结果是一样的,都是讲暂存区、工作区的readme.md文件内容和HEAD指向的保持一致,但是这两者的理解上有什么样的不同呢?

    2) 针对“一步”笔记中的--soft参数,我尝试过该参数后,又通过--soft参数指向原来HEAD所在的commit,将HEAD指针所指向的内容修改了回来。使用git log这些命令看上去都和原来没有任何区别。但是在gitk窗口中,有两行记录。不是很清楚这种情况产生的原因。
    Local uncommitted changes, not checked in to index
    Local changes checked in to index but not committed
    展开

    作者回复: 很好的问题。

    1)reset你用了hard参数 ,所以两个命令执行效果相同。注意reset命令的三个参数--hard, --mixed和--soft,除了hard外,你不妨用用其他两个方式再看看。

    记住checkout会把暂存区的文件内容同步到工作区,咱们命令中又带上了HEAD,所以,会把HEAD对应的readme.md文件同步到暂存区和工作区。你不带 HEAD 再试试看吧

    2)gitk只是好心提醒我们,有些改动的内容没加到暂存区(index),有些没创建commit

    
     1
  • 13693113483
    2019-08-25
    老师,我感觉很少会有需要将暂存区的内容恢复成和HEAD一样的。因为如果感觉暂存区的修改没有工作区的内容好,可以直接将工作区的内容添加到暂存区,那么暂存区会以新添加的文件状态为准。

    作者回复: 嗯,说的有道理。

    可能有一种情况需要吧,比如已经确定不想保留暂存区的变更,其次工作区还没有改好,我想把暂存区恢复到HEAD,以便执行 git diff就能比较工作区和暂存区(也等于HEAD)的差异。

    
    
  • 我在你的视线里
    2019-08-12
    git reset Head类似于Ctrl Z
    
    
  • Geek_28b75e
    2019-03-12
    老师,如果工作区目前有合适的方案,暂存区恢复后,岂不是覆盖了工作区的合适方案吗

    作者回复: 啊? 工作区的修改如果就是你要的,那你不要 stash pop,直接创建commit就行了。

    另外一种情况,可以先把当下工作区的变更用stash储藏起里,然后用git stash list看储藏区有多少次储藏(最新这次存在 stash@{0} 里面),最后用git stash pop stash@{某个数字}把对应的变更调出来。

    
    
  • 4fun
    2019-01-18
    最后那个问题:
    暂存区一个readme文件,工作区对readme继续最变更,也就是工作区和暂存区的readme内容不一样了;请问:此时执行“git reset”命令,工作区的readme文件,可能会有哪几种情况?

    我试了一下,更改readme之后放到暂存区,然后工作区继续更改readme。然后git reset HEAD readme后暂存区的东西跟HEAD一样。此时工作区的readme内容还是最新的状态,暂存区跟HEAD一样。也就是说之前暂存区的内容没有了、被丢弃了。

    不知道还有没有其他情况?
    展开
    
    
  • 小先生
    2019-01-06
    比较有意思的一个问题:暂存区一个readme文件,工作区对readme继续最变更,也就是工作区和暂存区的readme内容不一样了;请问:此时执行“git reset”命令,工作区的readme文件,可能会有哪几种情况?

    试了一下:目前只发现有一种情况吧,工作区应该一直是保持最后的文件状态。不知道对不对?

    作者回复: 嗯,可以拓展一下,把 reset 的几个参数用一下,--hard,--soft , --mixed ,看看有什么差别。

    当然,请在测试环境用这些参数,--hard 是⚠️的,因为会把暂存区和工作区的变更都清除掉。

    
    
  • 阿汤哥
    2018-12-20
    看到第20课,我发现要记笔记了,每节课老师提供的命令,有咩有汇总好的文档?如果没有 课程大纲那张图片有文本形式的吗?拿过来 每一节做一个笔记。
    
    
  • Vee
    2018-12-18
    更新有点慢额。
    
    
  • 你好我是老昜~
    2018-12-16
    请问老师的课程完全更新完成要等多久... 目前为止课程进程到了百分之多少了...? 想要快速的学完的...

    作者回复: 现在差不多三分之一了。

    
    
  • ysy
    2018-12-15
    老师,您好,是git add之后文件就到了暂存区了吗?
    git commit之后文件到了本地的分支?
    那我在IDEA中直接点击那个commit选项是直接到了本地分支了吗?
    还是说相当于先执行git add 然后执行了git commit呢?

    作者回复: 你在ide里面执行commit后,再看看历史树是否生成了新的commit。如果是,你的理解就对了

    
    
我们在线,来聊聊吧