Git暂存区

Git暂存区


git log查看提交日志,--stat参数可以看到每次提交的文件变更统计:
        $ cd /d/GitRoot/workspace/demo
        $ git log --stat
查看修改后的文件与版本库中的文件(实际比较的是一个中间状态的文件)的差异:
        $ git diff
显示精简格式的状态输出:
        $ git status -s
对修改的文件执行git add命令,将修改的文件添加到“提交任务”中才能提交。
    $ echo "Nice to meet you." >> welcome.txt
    $ git diff          #查看刚修改的文件与原的差异
    $ git commit -m "Append a nice line." #提交不成功
    $ git log --pretty=oneline
    $ git status -s
    $ git add welcome.txt   #需要先进行这一步才能提交成功
此时与HEAD(当前版本库的头指针)或master(当前工作分支)进行比较,就会发现差异:
        $ git diff HEAD   # git diff master
在使用git add前的git status -s命令输出的M位于第二列,含义是:工作区当前的文件与中间状态中(提交暂存区)的
文件相比有改动。在git add之后使用git status -s命令输出的M位于第一列,含义是:版本库中的文件~~~
此时若执行命令:
        $ echo "Bye"  >>  welcome.txt
        $ git status  #or git status -s 输出会有两个M
#Git状态输出的含义是:版本库中最新提交的文件与处于中间状态的提交暂存区(因为还没有commit)中的文件相比有改动,
 并且工作区当前的文件与提交暂存区中的文件相比也有改动。
不带参数的git diff显示工作区与提交暂存区的最新差异,git diff HEAD会看到更多差异。
查看提交暂存区和版本库中文件的差异:
        $ git diff --cached   #or git diff --staged
好啦,提交:
        $ git commit -m "which version checked in?"
如何证明提交成功:
        1) $ git log --pretty=oneline #或
        2) $ git status -s  #第一个绿色的M被提交了,所以只剩下第二个红色的M
查看被提交的welcome.txt是哪个版本:
        $ git diff   # or git diff HEAD #会在最后提交添加的字符前显示+
撤销工作区中welcom.txt尚未提交的修改:
        $ git checkout -- welcome.txt
查看.git/index文件时间信息:
        ls --full-time .git/index
git status/git diff命令会查看.git/index中的时间戳、长度等判断工作区文件是否改变,若改变了,
若改变了,将该文件新的时间戳记录到.git/index中,高效!
.git/index是一个包含文件索引的目录树,记录了文件名及其状态信息,文件内容存在Git对象库.git/objects目录中,
文件索引建立了文件和对象库中对象实体间的对应。
重点:
    * 当对工作区中被修改的文件执行git add时,暂存区中的目录将被更新,同时工作区被修改的文件内容会被写入到对象库中的
一个新的对象中,新对象的ID被记录在暂存区的文件索引中。
    * git commit时,暂存区的目录树会写到版本库(对象库)中,master分支会做相应更新,即master最新指向的目录树就是
提交时原暂存区的目录树
    * git reset HEAD时,暂存区的目录树会被重写,会被master分支指向的目录树替换,但是工作区不受影响。
    * git rm --cashed <file>或git checkout -- <file>时,会用暂存区全部的文件或指定的文件替换工作区的文件!!

    * git checkout HEAD或git checkout HEAD <file>会用HEAD指向的master分支中的全部或相应文件替换暂存区和工作区中的文件。

当进行提交时,实际上是将暂存区的内容提交到版本库中。。。




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值