Git仓库-记录每次更新

工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。

  1. 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。
  2. 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。
  3. 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。

    git status追踪仓库当前的状态

    第一次查看

  • 新建一个文件status.txt。

    1
    This is to track status.
  • 查看状态

    1
    2
    3
    4
    5
    6
    7
    8
    $ git status
    On branch master
    Untracked files:
    (use "git add <file>..." to include in what will be committed)

    status.txt

    nothing added to commit but untracked files present (use "git add" to track)

Untracked files,未跟踪的文件意味着Git在之前的快照(提交)中没有这些文件。

第二次查看

  • 修改文件

    1
    2
    This is to track status.
    update file.
  • 查看状态

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ 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: status.txt

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

告诉我们,文件被修改了,但还没有准备提交的修改。

第三次查看

  • git add

    1
    $ git add status.txt
  • 查看状态

    1
    2
    3
    4
    5
    6
    7
    $ git status
    On branch master
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)

    modified: status.txt
    `

将要被提交的修改包括status.txt,接着,就可以提交了。

第四次想看

  • git commit

    1
    $ git commit -m "add update track"
  • 查看状态

    1
    2
    3
    $ git status
    On branch master
    nothing to commit, working directory clean

当前没有需要提交的修改。

git diff来分析文件差异

  • 修改文件

    1
    2
    3
    This is to track status.
    update file.
    test diff.
  • 比较文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ git diff status.txt
    diff --git a/status.txt b/status.txt
    index d29d238..c6bbd16 100644
    --- a/status.txt
    +++ b/status.txt
    @@ -1,2 +1,3 @@
    This is to track status.
    -update file.
    +update file.
    +test diff.

Note:
要查看尚未暂存的文件更新了哪些部分,用git diff。
查看已暂存的将要添加到下次提交里的内容,用git diff –staged。

唐胡璐 wechat
欢迎您扫一扫上面的微信公众号,订阅我的博客!
分享创造价值,您的支持将鼓励我继续前行!