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. 【小方法】navicate for mysql使数据库可以识别中文

    右键选择新建数据库,将字符集与排序规则改成utf-8形式

  2. toj 3761 Egg Problem (好题~~)

    Egg Problem 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交: 22 测试通过: 7 描述 There is a very interest ...

  3. jquery二级导航

    效果图 直接放代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  4. Webpack实战(七):简单搞懂PostCSS的用法及与一些插件的用法

    不知不觉地春节要来临了,今天已经是放假的第二天,想想回老家之后所有的时间就不是自己的了,要陪孩子玩,走亲戚等等,我还是趁着在郑州的这两天,把几天后春节要发布的文章给提前整整.在此,提前祝大家春节快乐! ...

  5. Linux 网络客户端工具

    ping命令 发送ICMP协议的echo request给目标主机 常用选项: 从指定的本机接口发送ICMP:-I INTERFACE 本机有多个接口(网卡),可以选择从哪个接口发:-I(大写i) 接 ...

  6. pom.xml 配置 收藏

    本配置使用环境  jdk8  maven 3.6 C:\Users\Dell>java -version java version "1.8.0_162" Java(TM) ...

  7. C#XML文件操作随笔

    以为公司一直没有电源屏厂家协议解析为DevVars相关的软件,手写费时费力还容易出错,用了2天时间做了一个.txt协议文件筛选加并解析成xml文件的工具,总结一下用到的几个知识点 1.LINQ 是一个 ...

  8. Visual Studio Code中C/C++的环境配置

    Visual Studio Code 的功能十分强大,但是对我这种小白不是很友好,它和其它的集成开发工具不同,Visual Studio Code (以下简称VS)自身其实仅仅是一个编辑器, 是不具备 ...

  9. ts中的泛型

    /** * 泛型:软件工程中,我们不仅要创造定义良好的API,同时也要考虑可重用行,组件不仅能 * 够支持当前的数据类型,同时也能够支持未来数据类型. * 通俗理解:泛型就是解决类.接口.方法的复用性 ...

  10. LINUX下EFIBOOTMGR的使用,删除UEFI主板多余启动项和添加启动项

    用uefi装了几次次archlinux,搞的uefi启动选项下多出来好多启动项..这东西重格硬盘也是不好用的.发现以下方法可以解决. efibootmgr   //显示efi的启动项 删除一个引导项 ...