https://git-scm.com/book/zh/v2

git历史

集中式版本控制管理:cvs、svn

分布式版本控制管理:git

基本命令

git config --list --global:查看git配置

git init projectname:新建仓库

工作目录-暂存区-版本历史

git add filename:把文件从工作目录放到暂存区 (可被git管理)

git commit -m 'comment':提交到版本历史

git add -u:对于已经被git跟踪的文件,全部add

可以结合使用:git commit -am 'comment'对于已经被git跟踪的文件,全部commit

git status:查看状态

git reset --hard:暂存区的所有变更被清空

重命名文件
  1. 普通方法

    1. 在工作目录中重命名:mv oldfile newfile
    2. git add newfile
    3. git rm oldfile
  2. git mv oldfile newfile:不需要add!可以直接提交
日志

git log:查看当前分支日志

git log --oneline:简洁

git log -n4:最近4次

结合使用:git log -n2 --oneline

git log --all:所有分支

git log --graph图形化

分支

git branch:查看本地分支

结果:* master

git branch -v:查看本地分支信息

结果:* master 74c0f18f merge bug

git branch -r:查看远程分支

git branch -av:查看所有分支信息

git checkout -b branchname 415c58:创建分支

415c58是SHAI ID

git checkout master:切换分支

切换分支时,HEAD内容会发生变化,内容指向当前分支

git cat-file -t 74c0f18:查看类型,结果为commit

-p 查看内容

图形化界面

gitk:打开图形化界面

Patch:某一次的变更集,文件变更内容

Tree:文件目录结构,完整文件内容

.git文件夹

config:配置

/refs:/heads和/tags等

/objects/pack: 2个字符的松散文件夹打包

/objects/1c: 1c是两个字符的文件夹,内容是名为32c7dc4db2e4494cc80a9d417523daf7512c3e的文件。

git cat-file -t 1c32c7dc4db2e4494cc80a9d417523daf7512c3e结果是tree。

git cat-file -p 1c32c7dc4db2e4494cc80a9d417523daf7512c3e查看内容:
040000 tree aa7ea3fa83ad4c362b76a3fd4cf10c5d021b3a2e config
040000 tree a889744e08d65dddfb36db73209caa9a2c29e727 controller
040000 tree 224fda9a113e92e2df3aed4a8b0853b0dbfa28dd management
040000 tree 4d2202faec0f467d70801ccb39e4735647c31785 service
040000 tree 7746f7cc99e6bf1523019361f9837d7ad56c3bbe util

git cat-file -p aa7ea3fa83ad4c362b76a3fd4cf10c5d021b3a2e查看内容:
100644 blob 42da2509ccf8cea1661f5370a20552c0c1f4a895 ManagementSecurityConfig.java

commit、tree和blob

一个commit对应一个tree

tree:保存快照,包含tree和blob

blob:文件内容相同就是同一份blob,可以大大节约存储空间

理解为文件夹和文件

补充:win中 ls ~ dir、 cat ~ type

git内容补充-Git零基础快速入门-苏玲的更多相关文章

  1. [易学易懂系列|rustlang语言|零基础|快速入门|(17)|装箱crates]

    [易学易懂系列|rustlang语言|零基础|快速入门|(17)|装箱crates] 实用知识 装箱crates 我们今天来讲讲装箱技术crates. 什么是crates? 英语翻译是: 英 [kre ...

  2. [易学易懂系列|rustlang语言|零基础|快速入门|(15)|Unit Testing单元测试]

    [易学易懂系列|rustlang语言|零基础|快速入门|(15)] 实用知识 Unit Testing单元测试 我们知道,在现代软件开发的过程中,单元测试对软件的质量极及重要. 今天我们来看看Rust ...

  3. 零基础快速入门web学习路线(含视频教程)

    下面小编专门为广大web学习爱好者汇总了一条完整的自学线路:零基础快速入门web学习路线(含视频教程)(绝对纯干货)适合初学者的最新WEB前端学习路线汇总! 在当下来说web前端开发工程师可谓是高福利 ...

  4. [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)]

    [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)] 项目实战 实战2:命令行工具minigrep 我们继续开发我们的minigrep. 我们现 ...

  5. [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)]

    [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点 ...

  6. [易学易懂系列|rustlang语言|零基础|快速入门|(20)|错误处理]

    [易学易懂系列|rustlang语言|零基础|快速入门|(20)|错误处理] 实用知识 错误处理 我们今天来讲讲Rust中的错误处理. 很多语言都有自己的错误处理方式,比如,java是异常处理机制. ...

  7. [易学易懂系列|rustlang语言|零基础|快速入门|(4)|借用Borrowing]

    [易学易懂系列|rustlang语言|零基础|快速入门|(4)] Borrowing 继续讲讲另一个重要的概念:借用(borrowing), 什么是借用? 我们先来看前一文章([易学易懂系列|rust ...

  8. 序言 - PHP零基础快速入门

    我为什么要写<PHP零基础快速入门>? 原因: PHP 真心简单,适合零基础的人快速入门掌握,身边的人学习一两周上手开发的比比皆是: 市面上的文章或书籍对初学者并不友好,多半枯燥乏味,我相 ...

  9. 零基础快速入门SpringBoot2.0 (一)

    零基础快速入门SpringBoot2.0 (一) 一.SpringBoot2.x依赖环境和版本新特性说明 简介:讲解新版本依赖环境和springboot2新特性概述 1.依赖版本jdk8以上, Spr ...

随机推荐

  1. HDP之HBase性能调优

    (官方文档翻译及整理) 一.系统级调优 1.保证充足的RAM 2.64位的操作系统 3.Linux的swappiness设置为0 : sysctl vm.swappiness=10 vim /etc/ ...

  2. IT运维大会精华回顾 等保2.0时代掌控万物互联

    10月24日,由<网络安全和信息化>杂志社.IT运维网联合主办的“2019(第十届)IT运维大会”在北京新世纪日航酒店成功举行. 随着大数据.云计算.物联网.互联网+等快速发展,IT系统架 ...

  3. 一篇文章带你搞定 ElasticSearch 术语

    这篇文章主要介绍 ElasticSearch 的基本概念,学习文档.索引.集群.节点.分片等概念,同时会将 ElasticSearch 和关系型数据库做简单的类比,还会简单介绍 REST API 的使 ...

  4. 如何在SQL Server中生成和使用CRUD存储过程

    在本文中,请参阅如何在SQL Server中生成和使用CRUD存储过程. 大多数数据库系统基于缩写CRUD调用的最简单的4种数据操作操作进行操作. 此首字母缩写词代表CREATE,READ,UPDAT ...

  5. git命令小汇总和github

    Git 简介 是什么 Git 也是一个版本控制管理软件 有什么用,可以解决什么问题 保存历史记录 多人协作 有了 SVN,为啥要学 Git Git 火 Git 相对于 SVN 来说,更强大,用户也非常 ...

  6. 重构与动态为angularjs栏位赋值或获取值

    先来看下面一段html: 这个ng-model名称带有一定的规律带有序号. 先来实现数据绑定,从数据取到数据后,为ng-model绑定相对应的值: var c = response.data $sco ...

  7. C#实现的Table的Merge,以及实现Table的Copy和Clone

    C#实现的对两个Table进行Merge,两表必须存在至少一个公共栏位作为连接项,否则连接就失去了意义.如下是对两个table进行Merge的详细代码: private void button1_Cl ...

  8. #《Essential C++》读书笔记# 第四章 基于对象的编程风格

    基础知识 Class的定义由两部分组成:class的声明,以及紧接在声明之后的主体.主体部分由一对大括号括住,并以分号结尾.主体内的两个关键字public和private,用来标示每个块的" ...

  9. Your idea evaluation has expired. Your session will be limited to 30 minutes

    今天打开idea,出现了上面的话,试了网上的很多办法,获取注册码的那个方法是最常见的,那个网站现在不提供注册码了. ----两种方法-----**1)把提示框的x点掉,会自动打开idea**按最开始安 ...

  10. eclipse一直不停building workplace

    找解决方案的时候自己好了 然后又卡在了updating maven project 暂无解