zoukankan      html  css  js  c++  java
  • git reset,git checkout区别

    https://www.cnblogs.com/houpeiyong/p/5890748.html

    git reset  HEAD~1  将HEAD指向倒数第二次提交,最后一次提交删除,文件还在

    git checkout 将HEAD指向某个分支,当前的文件保存为快照,

    https://segmentfault.com/a/1190000006185954

    前面讲到checkout是会修改HEAD的指向,变更Index区域里的内容,修改Working Directory里的内容。

    这看上去很像reset --hard,但和reset --hard相比有两个重要的差别

    1. reset会把working directory里的所有内容都更新掉

    2. checkout不会去修改你在Working Directory里修改过的文件

    3. reset把branch移动到HEAD指向的地方

    4. checkout则把HEAD移动到另一个分支

    第二个区别可能有点难以理解,举例来说:假设你有两个分支master和develop,这两个分支指向不一样的commit,我们现在在develop分支上(HEAD指向的地方)

    如果我们git reset master,那么develop就会指向master所指向的那个commit。

    如果我们git checkout master,那么develop不会动,只有HEAD会移动。HEAD会指向master。看图:

    带文件参数

    当执行git checkout [branch] file时,checkout干了这件事情:

    1. 更新了index区域里file文件的内容

    2. 更新了working directory里file文件的内容

  • 相关阅读:
    切换svn用户
    表session查询
    http请求响应头信息
    map遍历的四种方法
    java i/o读写
    excel导出
    平安医保权限管理关系
    json发送hppt请求
    weblogic配置路径
    《神经网络和深度学习》系列文章十五:反向传播算法
  • 原文地址:https://www.cnblogs.com/xqnq2007/p/7828790.html
Copyright © 2011-2022 走看看