• git命令——git status、git diff


    前言

    当对项目做了更改时,我们通常需要知道具体改了哪些文件,哪些文件更改了没有暂存,哪些文件改了并且已加入到暂存区等待下次commit。上述任务使用git status都可以帮我们解决。但是想要知道文件内部改了哪些地方git status就无能为力了。git status最多只告诉你改没改,改哪了不知道。git diff可以解决这个问题。

    git status

    git status 命令的输出十分详细,但其用语有些繁琐。 如果你使用 git status -s 命令或 git status --short 命令,你将得到一种更为紧凑的格式输出。 运行 git status -s ,状态报告输出如下:

    $ git status -s
     M README
    MM Rakefile
    A  lib/git.rb
    M  lib/simplegit.rb
    ?? LICENSE.txt

    右侧M:该文件被修改了但是还没放入暂存区

    左侧M:该文件被修改了且放入暂存区

    MM:在工作区被修改并提交到暂存区后又在工作区中被修改了,所以在暂存区和工作区都有该文件被修改了的记录。

    A:新添加到暂存区中的文件

    ??:新添加的未跟踪文件

    X          Y     Meaning
    -------------------------------------------------
              [MD]   not updated
    M        [ MD]   updated in index
    A        [ MD]   added to index
    D         [ M]   deleted from index
    R        [ MD]   renamed in index
    C        [ MD]   copied in index
    [MARC]           index and work tree matches
    [ MARC]     M    work tree changed since index
    [ MARC]     D    deleted in work tree
    -------------------------------------------------
    D           D    unmerged, both deleted
    A           U    unmerged, added by us
    U           D    unmerged, deleted by them
    U           A    unmerged, added by them
    D           U    unmerged, deleted by us
    A           A    unmerged, both added
    U           U    unmerged, both modified
    -------------------------------------------------
    ?           ?    untracked
    -------------------------------------------------

    git diff

    参考:Linux命令——diff

    不加参数直接输入 git diff

    工作目录里面的文件 与 staging area里面的文件做对比。既然staging area里面有这个文件,那么他一定是tracked的。

    git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。 假设这样一种场景,你clone了一个项目,改了100个文件,然后git add把他们加到暂存区。然后你git diff,会什么也看不到。因为此时staging area有100个文件,但是你工作目录并没有再次修改那100个文件。

    退一步讲,你clone了一个项目,改了100个文件。这时候你如果不git add,直接git diff则是可以看到输出的。这时候staging area里面的内容默认是上次cmooit分支的内容。

    git diff --cached

    Git 1.6.1 及更高版本还允许使用 git diff --staged,效果是相同的,但更好记些。

    如果你把修改文件加到staging area,准备commit。在commit之前,想看看我这次提交的内容和上个commit有啥差异,可以执行这个命令。

  • 相关阅读:
    Access 通用访问类 OleDbHelper
    让Visual Studio 也支持JS代码折叠 [ Visual Studio | #region | #endregion ]
    提高网站性能的方法
    php 正则表达式整理 归纳 重点
    C++数据结构知识点
    algorithm算法设计,数据结构基本概念之我的归纳 by whb_咸菜圣斗士啊斌斌斌斌
    浏览器兼容性问题及常见的解决方法
    js抽象方法的使用
    js制作图片轮换切换
    C语言排序算法总结
  • 原文地址:https://www.cnblogs.com/kelamoyujuzhen/p/9948351.html
Copyright © 2020-2023  润新知