Git学习(小布老师学习摘要)

         Git是一种分布式文件管理系统,可是在设计的时候,是按照一个文件系统来进行设计,而非文件管理系统来进行设计。因此在不少的设计思想上和设计理念上和普通的文件管理系统有很大区别:git

  1. 版本文件的管理方式不同,Git对文件不一样的版本是保留完整的原始副本,而非其余文件版本控制工具同样,仅保留变化值。在本地仓库中,.git文件中保留了全部的版本文件。同一文件的不一样版本靠不一样的哈希值来进行区分。
  2. 文件分为,工做区,暂存区和仓库区,工做区中的内容只是仓库的快照版本,最终全部文件的肯定都要以仓库区为准。Git中有3类对象:blob,tree和commit对象。全部仓库区的对象都存储在 ./git/objects文件夹中,全部文件的命名采用hash值来进行命名,下面来讲一下对于objects文件夹中的一些经常使用操做:
  • 查找文件夹下面全部的普通文件:find .git/objects -type f
  • 显示git文件的文件类型: git cat-file -t ”文件哈希值前四位” 
  • 显示git中blob文件的内容: git show  ”文件哈希值前四位”
  • 显示git中tree文件的内容:git ls-tree  ”文件哈希值前四位”
  •  显示git中commit文件的内容:git show -s --pretty=row  ”文件哈希值前四位”

Git中一个commit对象,一定对应一个tree对象;全部分支的合并和冲突管理,都是在commit对象级别上来进行的。分布式

  • 合并的时候,先将代码切换到使用的分支 git branch “”分支名A“”;而后执行 git merge “”要合并的分支名B“”。若是B是在A的基础上进行的修改,则git默认执行fast-forward合并。
  • git log :查看git 的commit提交历史。
  • git reset : 默认的参数是 --mixed,将commit回滚到指定的版本,修改回到工做区中,此时commit的话须要使用 git commit -a -m 参数;  --soft参数,将commit回滚到指定的版本,修改回到暂存区中,此时提交的话使用 git commit -m参数便可; --hard参数,彻底回到某个指定的版本,此时git status是clean的,不须要进行提交。
  • git revert:在 git log 的基础上在生成一个新的版本,以前的版本继续保留。
  • git中对任何工做区文件的修改都须要使用git add加入到暂存区。不能直接加入。
相关文章
相关标签/搜索