git 学习

1. git init

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

[root@xx.xx.xx.xx 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 <mode> <sha1> <filename>

3. git commit

将index中的内容形成快照

4. git diff

git diff 将工作区和索引进行对比
git diff --cached 将索引和本地库中最新的一次commit进行对比
git diff <commit-id> 将工作区和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 <commitid>
  • HEAD指向对应的commit, 用commit内容覆盖index, 工作区不变
    git reset --mixed <commitid>
  • HEAD指向对应的commit, 并用commit内容覆盖index,和工作区
    git reset --hard HEAD^
    git reset --hard <commitid>

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 工作生活中,耳边时常传来一组混乱的对话。双方都想让对方明白自己的意思,可表述有问题,怎么解释都说不通。最后可能还因...
    苏菲的世界D阅读 1,109评论 0 1
  • 昨天是妈妈的生日,你一听就说:今天晚上回去吃饭,你要喊我妈!你怎么就没想着说要给我妈买点什么?去吃饭不要你说我肯定...
    彼岸_鸢尾阅读 385评论 0 1
  • 很喜欢一篇散文《读书新感觉》,我喜欢那清新幽默的文笔,他的作者是殷珂。 那年学校要我搞对外宣传,也就是干一些帮单位...
    潇雨_fca9阅读 446评论 4 0
  • 空出来两个座位,抢着坐过去,旁边两个人也抢着坐过去。我还是快了半步。坐下才发现,那是一对老夫妻。老夫让老妻坐下,自...
    远大的不知道阅读 246评论 0 1