git 学习

1. git init

在一个空目录执行git init以后,则会产生一个.git目录

[[email protected] git_test]$ls  .git  
branches  config  description  HEAD  hooks  index  info  objects  refs

objects: 当文件修改后,添加到git的时候,就会被添加到objects目录
index: index就是git的缓存区

2. git add test.txt

将test.txt加入git仓库,同时放入index中
加入到index中以后,这个文件就被git track了

  • git hash-object -w test.txt
    把一个文件加入git仓库,存放到objects目录下面

  • git update-index --add --cacheinfo 100644
    9766475a4185a151dc9d56d614ffb9aaea3bfd42 test.txt
    将文件存入index中

    --cacheinfo

3. git commit

将index中的内容形成快照

4. git diff

git diff 将工作区和索引进行对比
git diff --cached 将索引和本地库中最新的一次commit进行对比
git diff 将工作区和commitid进行对比

5. git log

显示提交日志
-n :显示最近几条
-p: 显示具体的文本对比结果

6. git ls-files

git ls-files --stage //查看index中的文件信息
git ls-files --other //查看未tracke的文件信息

7. git checkout

git checkout -- test.txt //用head指向的commitid内容覆盖工作区中的test.txt

8 git reset

git reset的本质是移动HEAD指针,默认使用Mixed 参数

  • HEAD指向对应的commit, 不覆盖工作区也不覆盖index
    git reset --soft
  • HEAD指向对应的commit, 用commit内容覆盖index, 工作区不变
    git reset --mixed
  • HEAD指向对应的commit, 并用commit内容覆盖index,和工作区
    git reset --hard HEAD^
    git reset --hard

git reset HEAD //HEAD指向HEAD, 用head内容覆盖index, 默认是mixed
git reset --hard HEAD //HEAD指向HEAD, 用head内容覆盖index和工作区,这个命令经常用到

你可能感兴趣的:(git 学习)