git对象

    每个git对象主要有三部分组成:类型大小内容

            大小就是指git对象内容的大小。

            内容就是git对象的里面包含的东西,而这个主要取决于git对象的类型。

            git对象有四种类型:"blob"、"tree"、 "commit" 和"tag"。

           “blob”用来存储文件数据,通常是一个文件。

           “tree”有点像一个目录,它管理一些“tree”或是 “blob”(就像文件和子目录)

           一个“commit”只指向一个"tree",它用来标记项目某一个特定时间点的状态。

     它包括一些关于时间点的元数据,如时间戳、最近一次提交的作者、指向上次提交

      commits)的指针等等。

            一个“tag”是来标记某一个提交(commit) 的方法。

    git对象中HEAD和master的关系,HEAD表示的某一个提交(通常是最新提交),master代表的是master分支最新提交。当在master分支下时,这两个显示的哈希值是一个。可以用git rev-parse master 和git rev-parse HEAD


git重置:

    git的重置主要说的是git reset()。

        git reset 主要是操作master游标,即改变master指向的commit(master 指向的是当前分支中最新的

    提交)。git reset 是一个很危险的操作,它是用来重置提交。主要中的命令有:

           git reset --hard  commitID ---------这个命令直接把所指定的commitID之前的commit取消了。

           git reset --soft  commitID ------------这个命令直接把所指定的commitID之前的commit退回到暂

    存区。

            git reset --mixed  ---------- 这个命令直接把所指定的commitID之前的commit退回到工作区

     git重置以后的恢复。

          当需要找回被重置的commit时,可以使用git reflog寻找,用git cherry-pick 找回。