美文网首页
git学习笔记

git学习笔记

作者: 砺雪凝霜 | 来源:发表于2018-05-05 15:49 被阅读25次

一、git版本库

Git版本库只是一个简单的数据库,其中包含所有用来维护与管理项目的修订版本和历史的信息。在Git中,跟大多数版本控制系统一样,一个版本库维护着项目整个生命周期的完整副本。然而,不同于其他大多数VCS,Git版本库不仅仅提供版本库中所有文件的完整副本,还提供版本库本身的副本。

Git维护着两个主要的数据结构:对象库和索引。所有的这些版本库数据存放在工作目录跟目录下一个名为.git的隐藏子目录中。

对象库在复制操作的时候能进行有效复制,这也是用来支持完全分布式VCS的一种技术。索引是暂存的信息,对版本库来说是私有的,并且可以在需要的时候按需求进行创建和修改。

二、Git对象类型

对象库是Git版本库实现的心脏。它包含你的原始数据文件和所有日志消息、坐着信息、日期,以及其他用来重建项目人意版本或分支的信息。

Git放在对象库里的对象有四种类型:块(blob)、目录树(tree)、提交(commit)和标签(tag)。这四种原子对象构成Git高层数据结构的基础。

  • 块(blob)
    文件的每一个版本表示为一个块(blob)。blob是“二进制大对象”的缩写,是计算机领域的常用术语,用来指代某些可以包含任务数据的变量或文件,同时其内部结构会被程序忽略。一个blob被视为一个黑盒。一个blob保持一个文件的数据,但不包含恩和关于这个文件的元数据,甚至连文件名也没有。

  • 目录树(tree)
    一个目录树(tree)对象代表一层目录信息。它记录blob标识符、路径名和在一个目录里所有文件的一些元数据。它可以地柜引用其他目录树或子树对象,从而建立一个包含文件和子目录的完整层次结构。


    git目录树.png
  • 提交(commit)
    一个commit对象保存版本库中每一次变化的元数据,包括作者、提交者、提交日志和日志消息。每一个提交对象指向一个目录树对象。

  • 标签(tag)
    一个标签对象分配一个任意的且可读的名字给一个特定对象,通常是一个提交对象通。通常情况下,tag代表每个项目上线的稳定版本,代码一般不会出现改动。

三、git常用命令

1、基本命令
git init :初始化一个Git仓库

git clone <项目地址>:从远程仓库copy一个git版本库到本地

git add <file>:将文件添加到版本库中

git add . :将根目录下所有的文件添加进版本库中

git status:查看暂存区(索引)中文件的状态

git commit -m "message":将文件由暂存区添加到工作区中,也可以说添加进当前的分支中

git log:查看提交的日志信息

git rm <file>:删除文件

git checkout HEAD -- <file>:用于恢复git rm删除的文件

  • 2、更改提交命令

git reset :用于版本回退

git reset --soft HEAD^ :会将HEAD引用指向给定提交。索引和工作区目录的内容保持不变

git reset --mix HEAD^ :会将HEAD指向给定提交。索引内容也跟着改变以符合给定提交的结构,但是工作目录中的内容保持不变。这个版本的命令会将索引变成你刚刚暂存该提交全部变化时的状态。

git reset --hard HEAD^:会将HEAD指向给定提交,索引的内容和工作区的当前修改将会消失,新文件也将删除。如果当前commit可以丢掉,那么可以用--hard来实现。

  • git cherry-pick 命令

git cherry-pick <commitId>:一般用于把一个分支中的commit,引入到另外一个分支中。实际开发中如果刚开发一个新功能,刚好其它分支中也需要该功能, 那么可以使用git cherry -pick commitId 把功能添加到另外一个分支中。

  • git revert

git revert <commitId>:回退到特定的commit版本

  • 3、缓存暂存区

    git stash save "message" :把代码保存到stash区

    git stash list:查看stash区列表

    git stash pop:把stash区的stash@{0}代码合并到暂存区,并把该stash清空

    git stash apply stash@{0} :和 git pop有点类似,只不过它不会清空该stash

4、操作分支的相关命令

git branch:查看分支

git branch <branch>

git fetch:把远程分支更新到本地

git checkout -b <branch>:切换到dev分支

git merge <branch>:把dev的代码合并到当前分支

git branch -d <branch>: 删除分支

相关文章

  • 学习笔记| git深入浅出 Part1_快速操作指南

    Git专题 学习笔记| git深入浅出 Part1_快速操作指南 学习笔记| git深入浅出 Part2_Git...

  • git 入门

    git 入门学习笔记----3个入门命令:git init、git add、git commit -v 学习场景(...

  • git记录

    Git Magic图解gitgit 学习笔记git游戏(学习)1、消除文档路径中文乱码git config --g...

  • Git学习笔记--常用命令整理

    超实用Git学习笔记 Git全局配置git config --global user.name "用户名"git ...

  • Git常用命令与学习总结

    安装Git Git的下载地址:Git官网下载地址 学习网址 git 学习笔记- Book 在线练习地址 基础常用指...

  • git学习笔记(二)—— git的简单操作

    这是本系列学习笔记的第二篇git 学习笔记(一)—— 初识 git 前言 本篇文章将简要的介绍 Git 的一般操作...

  • 关于crlf

    Git学习笔记:Git设置CRLF(行尾换行符) git config --global core.autocrl...

  • GIT

    Git学习笔记 Git 与 Github对接: cd到当前文档 git init初始化git git add -A...

  • Git学习笔记

    git学习笔记 声明 本文是本人学习Git过程中所做的笔记,以便日后查阅,文中多有错漏之处,不建议用作学习材料,文...

  • Git学习笔记

    git 学习笔记 注册个人信息 git config --global user.name(你的用户名) git ...

网友评论

      本文标题:git学习笔记

      本文链接:https://www.haomeiwen.com/subject/kbnsrftx.html