文章目录

  • 1.前言
  • 2.修改记录 log
  • 3.查看 unstaged
  • 4.查看 staged (--cached)
  • 5.查看 staged & unstaged (HEAD)


1.前言

在 git 中, 每一次提交(commit)的修改, 都会被单独的保存起来. 也可以说 git 的中的所有文件都是一次次修改累积起来的. 文件好比楼房, 每个 commit 记录 了盖楼需添加或者拿走的材料. 整个施工过程也被记录了下来.

2.修改记录 log

之前我们以Mr Luoj 的名义对版本库进行了一次修改, 添加了一个 1.py 的文件. 接下来我们就来查看版本库的些施工的过程. 可以看到在 Author 那已经有我的名字和 email 信息了.

android studio git 查看变更 git查看修改_暂存区


如果我们对1.py文件进行一次修改, 添加这行代码:

a = 1

然后我们就能在 status 中看到修改还没被提交的信息了.

$ git status

# 输出
On branch 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:   1.py    # 这里显示有一个修改还没被提交

no changes added to commit (use "git add" and/or "git commit -a")

android studio git 查看变更 git查看修改_git_02


所以我们先把这次修改添加 (add) 到可被提交 (commit) 的状态, 然后再提交 (commit) 这次的修改:

$ git add 1.py
$ git commit -m "change 1"

# 输出
[master fb51216] change 1
 1 file changed, 1 insertion(+) # 提示文件有一处添加

再次查看 log, 现在我们就能看到 create 1.py 和 change 1 这两条修改信息了. 而且做出这两条 commit 的 ID, 修改的 Author, 修改 Date 也被显示在上面.

$ git log

android studio git 查看变更 git查看修改_暂存区_03


如果删除一部分代码, 也会被记录上, 比如把 a = 1 改成 a = 2, 再添加一个 b = 1.

a = 2
b = 1

3.查看 unstaged

如果想要查看这次还没 add (unstaged) 的修改部分 和上个已经 commit 的文件有何不同, 我们将使用 $ git diff:

$ git diff   #对比工作区(未 git add)和暂存区(git add 之后)

android studio git 查看变更 git查看修改_暂存区_04

4.查看 staged (–cached)

如果你已经 add 了这次修改, 文件变成了 “可提交状态” (staged), 我们可以在 diff 中添加参数 --cached 来查看修改:

$ git add .   # add 全部修改文件
$ git diff --cached   #对比暂存区(git add 之后)和版本库(git commit 之后)

android studio git 查看变更 git查看修改_git_05

5.查看 staged & unstaged (HEAD)

a = 2
b = 1
c = b

目前 a = 2 和 b = 1 已被 add, c = b 是新的修改, 还没被 add.

$ git diff HEAD     # 对比工作区(未 git add)和版本库(git commit 之后)

android studio git 查看变更 git查看修改_git_06

$ git add .
$ git status
$ git commit -m "change 2"

android studio git 查看变更 git查看修改_版本库_07