zoukankan      html  css  js  c++  java
  • checkout 命令和reset命令的区别(转)

    基本用法

    上面的四条命令在工作目录、暂存目录(也叫做索引)和仓库之间复制文件。

    •     git add files 把当前文件放入暂存区域。
    •     git commit 给暂存区域生成快照并提交。
    •     git reset -- files 用来撤销最后一次git add files,你也可以用git reset 撤销所有暂存区域文件。
    •     git checkout -- files 把文件从暂存区域复制到工作目录,用来丢弃本地修改。

    你可以用 git reset -p, git checkout -p, or git add -p进入交互模式。也可以跳过暂存区域直接从仓库取出文件或者直接提交代码。

    •     git commit -a 相当于运行 git add 把所有当前目录下的文件加入暂存区域再运行。git commit.
    •     git commit files 进行一次包含最后一次提交加上工作目录中文件快照的提交。并且文件被添加到暂存区域。
    •     git checkout HEAD -- files 回滚到复制最后一次提交。

    Checkout

    checkout命令用于从历史提交(或者暂存区域)中拷贝文件到工作目录,也可用于切换分支。

    当给定某个文件名(或者打开-p选项,或者文件名和-p选项同时打开)时,git会从指定的提交中拷贝文件到暂存区域和工作目录。比如,git checkout HEAD~ foo.c会将提交节点HEAD~(即当前提交节点的父节点)中的foo.c复制到工作目录并且加到暂存区域中。(如果命令中没有指定提交节点,则会从暂存区域中拷贝内容。)注意当前分支不会发生变化。

    • HEAD当前提交节点
    • HEAD~当前提交节点的父节点
    • HEAD~2当前提交节点的父节点的父节点
    • HEAD~3当前提交节点的父节点的父节点的父节点


    当不指定文件名,而是给出一个(本地)分支时,那么HEAD标识会移动到那个分支(也就是说,我们“切换”到那个分支了),然后暂存区域和工作目录中的内容会和HEAD对应的提交节点一致。新提交节点(下图中的a47c3)中的所有文件都会被复制(到暂存区域和工作目录中);只存在于老的提交节点(ed489)中的文件会被删除;不属于上述两者的文件会被忽略,不受影响。

    如果既没有指定文件名,也没有指定分支名,而是一个标签、远程分支、SHA-1值或者是像master~3类似的东西,就得到一个匿名分支,称作detached HEAD(被分离的HEAD标识)。这样可以很方便地在历史版本之间互相切换。比如说你想要编译1.6.6.1版本的git,你可以运行git checkout v1.6.6.1(这是一个标签,而非分支名),编译,安装,然后切换回另一个分支,比如说git checkout master。

    Reset

    reset命令把当前分支指向另一个位置,并且有选择的变动工作目录和索引。也用来在从历史仓库中复制文件到索引,而不动工作目录。

    如果不给选项,那么当前分支指向到那个提交。如果用--hard选项,那么工作目录也更新,如果用--soft选项,那么都不变。

    如果没有给出提交点的版本号,那么默认用HEAD。这样,分支指向不变,但是索引会回滚到最后一次提交,如果用--hard选项,工作目录也同样。

    如果给了文件名(或者 -p选项), 那么工作效果和带文件名的checkout差不多,除了索引被更新。

    转载:https://blog.csdn.net/shimazhuge/article/details/77168307

  • 相关阅读:
    用 Python 带你看各国 GDP 变迁
    Fluent Interface(流式接口)
    probing privatePath如何作用于ASP.NET MVC View
    Word插入htm文件导致文本域动态增加的一个问题
    Visual Studio 2013附加进程调试IE加载的ActiveX Control无效解决方法
    Ubuntu下Chrome运行Silverlight程序
    Windows Phone Bing lock screen doesn't change解决方法
    SPClaimsUtility.AuthenticateFormsUser的证书验证问题
    Web Service Client使用Microsoft WSE 2.0
    Visual Studio 2013安装Update 3启动crash的解决方法
  • 原文地址:https://www.cnblogs.com/Pjwork/p/9464302.html
Copyright © 2011-2022 走看看