• 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文件的内容

  • 相关阅读:
    多线程 信号量
    sql在不同数据库查询前几条数据
    Office Outlook同步 很奇怪的BUG
    搜索小技巧整理
    想做一个权限管理插件
    ibatis和Castle学习历程
    查找存储过程中的错误位置
    VS2005项目模版丢失解决方案及VS2005项目模版查找原理
    C# 邮件发送接收
    数据库优化整合
  • 原文地址:https://www.cnblogs.com/xqnq2007/p/7828790.html
Copyright © 2020-2023  润新知