美文网首页
Git 基础应用(二)git diff命令

Git 基础应用(二)git diff命令

作者: 无名灰衣扫地人 | 来源:发表于2016-12-14 17:42 被阅读0次
    git diff 提交内容比较

    https://git.oschina.net/minasia/GitTest.git 克隆一个项目或者自己手动创建一个git项目(上篇文章已讲解)

    git clone https://git.oschina.net/minasia/GitTest.git
    cd GitTest
    

    进入到项目中,添加一个文件,编辑一个文件

    $ echo 'abc' >> file1
    $ echo 'new file ' >> newFile
    

    查看当前git状态

    $ git status
        On branch master
        Your branch is up-to-date with 'origin/master'.
        Changes not staged for commit:
          (use "git add <file>..." to update what will be committed)
          (use "git checkout -- <file>..." to discard changes in working directory)
        
            modified:   file1
        
        Untracked files:
          (use "git add <file>..." to include in what will be committed)
        
            newFile
        
        no changes added to commit (use "git add" and/or "git commit -a")
    

    但是git status 命令只能查看哪些文件发生了变化,无法查看具体内容的变化。如何查看修改的文件内容呢,那就需要使用git diff命令。git diff命令的作用是比较修改的或提交的文件内容。

    diff --git a/file1 b/file1
    index e4b01c6..608842c 100644
    --- a/file1
    +++ b/file1
    @@ -3,3 +3,4 @@ file1
     
     aaa
     aa
    +abc
    ~
    ~
    ~
    ~
    ~
    ~
    ~
    (END)
    

    上面的命令执行后需要使用q退出。命令输出当前工作目录中修改的内容,并不包含新加文件,请注意这些内容还没有添加到本地缓存区。

    将修改内容添加到本地缓存区,通配符可以把当前目录下所有修改的新增的文件都自动添加:

    $ git add *
    

    再执行git diff会发现没有任何内容输出,说明当前目录的修改都被添加到了缓存区,如何查看缓存区内与上次提交之间的差别呢?需要使用--cached参数:

    $ git diff --cached
    
    diff --git a/file1 b/file1
    index e4b01c6..608842c 100644
    --- a/file1
    +++ b/file1
    @@ -3,3 +3,4 @@ file1
     
     aaa
     aa
    +abc
    diff --git a/newFile b/newFile
    new file mode 100644
    index 0000000..fa49b07
    --- /dev/null
    +++ b/newFile
    @@ -0,0 +1 @@
    +new file
    

    最后提交代码

    $ git commit -m '提交代码' 
    

    提交后git diff与git diff --cached都不会有任何输出了。

    git diff 分支比较
    # 创建分支
    $ git branch newBranch
    # 切换分支
    $ git checkout newBranch
    # 修改文件
    $ echo 'aaaaa' >> file1
    $ echo 'new new file' >> NewFile1
    # 添加到缓冲区
    $ git add *
    # 提交
    $ git commit -m '提交'
    

    查看master分支与newBranch分支之间的差别

    $ git diff master
    
    diff --git a/NewFile1 b/NewFile1
    new file mode 100644
    index 0000000..e2fbd00
    --- /dev/null
    +++ b/NewFile1
    @@ -0,0 +1 @@
    +new new file
    diff --git a/file1 b/file1
    index e4b01c6..f2ece01 100644
    --- a/file1
    +++ b/file1
    @@ -3,3 +3,5 @@ file1
     
     aaa
     aa
    +abc
    +aaaaa
    diff --git a/file2 b/file2
    index 3213394..bc65a8d 100644
    --- a/file2
    +++ b/file2
    @@ -1,2 +1,3 @@
     file2
     edit file2
    

    git diff 是一个难以置信的有用的工具,可以找出你项目上任意两个提交点间的差异。可以使用git help diff详细查看其他参数和功能。

    相关文章

      网友评论

          本文标题:Git 基础应用(二)git diff命令

          本文链接:https://www.haomeiwen.com/subject/qkzimttx.html