1.简介:

Git是目前最先进的分布式版本控制系统,在git的管理下,每个人的电脑上都有一个完整的版本库,配合云上一台充当“中央服务器”的电脑(方便交换和修改)。
git是用于记录文件变更的版本控制系统, 支持文件版本跟踪,记录,回退,合并 等操作,并在此基础上实现了版本切换,差异比较,分支管理,分布式协作等功能。

2.版本库结构:

keywords: 管理,追踪,二进制文件

.git

git init .;

多次add,一次性commit到本地master;

  • 在工作目录中修改文件。

  • 暂存文件,将文件的快照放入暂存区域。

  • 提交更新,找到暂存区域的文件,将快照永久性存储到 Git 仓库目录。

Git存储的是 某一时刻所有文件的快照,而且存储的是整个文件的内容,而不是文件的差异。Git每次都记录的是文件的一个新的版本

其他版本控制系统记录的是原始文件以及文件的差异:

3.Git下文件状态:

git init

git status

(图片来源:Git官网)

4.HEAD(分支管理)

keywords:快照,log,

理解:当前活跃分支的游标(下图主要体现commit版本号的移动)

1.在master分支上时(HEAD指向master,master指向最新的提交)

2.执行git checkout dev(切换到当前指向的分支dev)

3.在dev分支上进行开发,&^)@$%#_())(#*)@>@(…

(dev跟随着commit移动,HEAD随之移动)

4.切换到master分支(HEAD随之切换,指向master),执行git merge dev(master指向了dev最新的提交)

6.fork模式下的开发与合并

7.相关知识点总结:

1.git diff:

  • git diff #是工作区(workspace)和暂存区(stage)的比较 ;

  • git diff --cached #是暂存区(stage)和分支(master)的比较;

  • git diff HEAD #查看工作区和版本库里面最新版本的区别;

2.命令git checkout --test.txt意思就是,把test.txt文件在工作区的修改全部撤销,这里有两种情况:

  • 一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

  • 一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态;

3.git reset之后,整个工作区的所有文件都会回到指定版本提交的那个状态;

4.git revert <commit_id>操作实现以退为进;

5.rm:

  • 如果你用的rm删除文件,那就相当于只删除了工作区的文件,如果想要恢复,直接用git checkout – 就可以

  • 如果你用的是git rm删除文件,那就相当于不仅删除了文件,而且还添加到了暂存区,需要先git reset HEAD ,然后再git checkout –

  • 如果你想彻底把版本库的删除掉,先git rm,再git commit 就ok了

6.只有版本库的修改才可以被跟踪;

7.git status 查看当前git仓库与上一次commit之后的版本库的一切修改,包括工作区的修改和暂存区的修改;

8.由于远程库是空的,我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令;

9.HEAD指向master,master指向最新的提交;

10.只git add ,没有git commit,此时,暂存区比分支新一个版本。

8.命令速查:

9.相关资料:

廖雪峰的git教程:https://www.liaoxuefeng.com/wiki/896043488029600
pro Git中文版:https://gitee.com/progit/

Git原理及实践(Fork模式)相关推荐

  1. OpenGL原理与实践——核心模式(五):颜色、基础光照、Phong模型、材质与光

    目录 颜色相关理论 什么是颜色 如何计算颜色? 简单实现 Phong光照模型--局部光照模型 环境光 ​编辑 漫反射 镜面反射 材质与光 材质与纹理的关系 材质在shader的体现 材质属性与光属性 ...

  2. OpenGL原理与实践——核心模式(六):光照贴图、光源分类以及多光源场景主要源码实现

    本章主要以代码为主,理论理解即可.详细分析代码 目录 光照贴图 光源分类 平行光 点光源 shader--点光源 聚光灯 聚光灯边缘优化--光强递减 源码解析 main 全局变量.句柄 main函数主 ...

  3. Kubernetes初探:原理及实践应用

    Kubernetes初探:原理及实践应用 [日期:2014-11-03] 来源:CSDN 作者:张俊 [字体:大 中 小] 总体概览 如下图所示是我初步阅读文档和源代码之后整理的总体概览,基本上可以从 ...

  4. 20164301 Exp3 免杀原理与实践

    Exp3 免杀原理与实践  1. 实践内容 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程 1.2 通过组合应 ...

  5. sentencepiece原理与实践

    1 前言 前段时间在看到XLNET,Transformer-XL等预训练模式时,看到源代码都用到sentencepiece模型,当时不清楚.经过这段时间实践和应用,觉得这个方法和工具值得NLP领域推广 ...

  6. Git 原理安装和命令解析

    Git简介 Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git有什么特点?简单来说就是:高端大气上档次! 那什么是版本控制系统? 如果你用Microsoft Word写 ...

  7. Linux 快照 (snapshot) 原理与实践(一) 快照基本原理

    文章目录 0. 背景 1. 如何理解快照(snapshot)? 2. 快照 (snapshot) 的原理 2.1 全量快照 1. 克隆 (Clone) 2. 镜像分离 (Split Mirror) 2 ...

  8. 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践

    2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...

  9. 知识普及:关于Fuzzing模糊测试入门原理及实践的讨论

    狩猎者网络安全旗下--知柯信息安全团队(知柯信安) 漏洞挖掘是否是真正的安全呢? "The best alternative to defense mechanisms is to find ...

最新文章

  1. spring-gateway(一)Reactor编程基础
  2. URAL 1721 Two Sides of the Same Coin(二分图匹配,输出匹配对象)
  3. matlab如何输出D-H表,MATLAB结果怎么输出表格形式的数据?
  4. 如何修改eclipse里面Android虚拟机的存放路径
  5. 静态代码和动态代码的区别_无代码和低代码有哪些区别
  6. 求出该数组中特定元素的和,特定元素是指个位和十位不包含7的偶数。
  7. node.js打包环境部署CentOS7.4
  8. zstd安装_在ARM架构服务器上编译Greenplum6并制作rpm安装包
  9. ARM汇编EQU伪指令
  10. javascript 校验 非空_前端(js+JQuery非空校验)
  11. python基础笔记(六)_数据清洗及建模
  12. c语言ide 字体大小,配置最小c语言IDE
  13. 保定工程技术学校网络计算机,保定工程技术学校2021年有哪些专业
  14. tampermonkey 下载
  15. 15、Java基础---继承和访问属性
  16. 什么是零知识证明(ZK Proof)?Web2.0通往Web3.0的入口技术
  17. 朋友圈gys是什么意思,女生微信朋友圈说说经典句子
  18. 如何添加旺旺客户,淘宝店铺左侧代码
  19. Photoshop制作剔透魔法水晶球
  20. DAVINCI和OMAP架构的区别

热门文章

  1. 缓存解释(一级缓存,二级缓存)
  2. Arduino 音乐代码
  3. 常见的比较级特殊形式
  4. 远程抹掉iPhone
  5. 对凌承芯433M无线收发模块的测试
  6. 计算机唤醒休眠蓝屏,win7唤醒睡眠时经常蓝屏
  7. 中国android和iOS用户数量,Android和iOS端Outlook用户数量突破1亿
  8. AES加密:PHP与Java互通,解密准确
  9. 金仓kes V8R6修改用户system密码
  10. 对抗脂肪君经拿滚系列之三 - 关于减脂区的迷思 最有效率减脂