git使用记录七:对工作区和暂存区的一些操作场景

比较暂存区和HEAD所含文件的差异?

操作场景如下:

  • 修改readme.md 文档
    • vi readme.md
  • 加入到暂存区域
  • git add readme.md
  • 使用git diff -cached 做比较

比较工作区和暂存区所含文件的差异?

操作场景如下:

  • 修改readme.md 文档
    • vi readme.md
  • 加入到暂存区域
  • git add readme.md
  • 使用git diff 做比较

让暂存区恢复成和HEAD的一样?

git reset HEAD

暂存区覆盖工作区(将工作区的修改抹掉)

操作场景

  • 修改 re'adme.md
    • vi readme.md
  • 比较工作区和暂存区的问价差异
    • git diff
  • 将暂存区覆盖工作区
    • git checkout -- readme.md
  • 再次比较工作区和暂存区的差异
    • git diff

取消暂存区部分文件的更改?

使用场景:

创建了两个文件, 同时加入到了暂存区域, 发现还需要修改

soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   index.css
        new file:   index.js

index.css已经加入到暂存区域了, 但是还需要修改, 我们先从暂存区域撤回吧

soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git reset HEAD   index.css

执行git status 查看一下是否退回来了

soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   index.js

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        index.css

再比较一下工作区和暂存区的差别

soaeon@DESKTOP-FUJJTHR MINGW64 /f/gitstudy (master)
$ git diff --cached
diff --git a/index.js b/index.js
new file mode 100644
index 0000000..e69de29

原文地址:https://www.cnblogs.com/soaeon/p/10908712.html