git-初始学习摘录01

来源:互联网 发布:尤克里里调音软件G 编辑:程序博客网 时间:2024/06/08 04:29

2.2暂存区

1、此命令可以用来查看提交日志,用来查看统计变更。

$ cd /path/to/my/workspace/demo$ git log --stat
2、变更不能直接提交 

     创建welcom.txt

$ echo "Nice to meet you." >> welcome.txt

     进行提交

$ git commit -m "Append a nice line."
    结果:失败

    原因分析:

    执行git status-s命令,发现m处于第二列,此时状态为,工作区中文件处于中间状态。

$ git status -s M welcome.txt
     需要执行git add命令
$ git add welcome.txt

接着执行git status-s发现m处于第一列,则代表文件提交缓存区,版本库中的文件处于中间状态

$ git status -sM  welcome.txt
git commit命令进行提交,即可提交成功

3、 理解git暂存区概念

通过下列命令比较index时间轴,可以说明暂存区工作原理

ls --full-time .git/index

$ touch welcome.txt$ git status -s     # 执行 git diff ,如果 git 版本号小于 1.7.3$ ls --full-time .git/index

因为判断文件是否更改,使用时间戳、文件长度等信息进行比较要比通过文件内容比较要快的多,所以Git这样的实现方式可以让工作区状态扫描更快速的执行,这也是Git高效的因素之一。

暂存区、工作区、版本库之间的常见操作命令

  • 当执行git reset HEAD命令时,暂存区的目录树会被重写,被master分支指向的目录树所替换,但是工作区不受影响。
  • 当执行git rm –cached <file>命令时,会直接从暂存区删除文件,工作区则不做出改变。
  • 当执行git checkout .或者git checkout – <file>命令时,会用暂存区全部或指定的文件替换工作区的文件。这个操作很危险,会清除工作区中未添加到暂存区的改动。
  • 当执行git checkout HEAD .或者git checkout HEAD <file>命令时,会用HEAD指向的master分支中的全部或者部分文件替换暂存区和以及工作区中的文件。这个命令也是极具危险性的,因为不但会清除工作区中未提交的改动,也会清除暂存区中未提交的改动。




0 0
原创粉丝点击