思路:先讲LInux上的相关操作,然后再讲Windows上的图形界面化的操作!
说明:从需求入手,了解相关命令!
----------------------------------------------------------------------------------------------------------
一、先了解一些基础(很重要)的概念!
(1)什么是工作区
Working Directory,顾名思义是桌面上任何一个可见的目录
前提:版本库所在的目录--->git init ---->隐藏.git目录的位置!
即:git init 所在的目录,通过pwd显示!
说明:让该文件进入Git的管理范围---->git add
(2)什么是版本库
版本库又名仓库,英文名Repository,你可以简单理解成一个目录(其实是工作区内的一个隐藏目录.git),这个目录里面存放的是各个版本的文件快照(Snapchat),每个版本对应的文件都可以被Git管理起来,工作区的每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以"还原"!
说明:文件的定义是宏观的!
仓库的种类:本地仓库和远程仓库!
快照:类似于备份!
(3)暂存区
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master(主分支),以及指向master的一个指针叫HEAD
暂存区:只是一个临时保存修改文件的地方,起一个承上启下的作用(过渡),很重要!
后续补充:
(1)所谓的暂存区只是一个简单的索引文件而已------>index;
(2)暂存区这个索引文件里面包含的是文件的目录树,像一个虚拟的工作区,在这个虚拟工作区的目录树中,记录了文件名、文件的时间戳、文件长度、文件类型以及最重要的SHA-1值(散列),文件的内容并没有存储在其中,所以说 它像一个虚拟的工作区;
(3)索引指向的是隐藏目录.git/objects下的文件;
(4)暂存区的作用:除非是绕过暂存区直接提交,否则Git想把修改提交上去,就必须将修改存入暂存区最后才能commit,每次提交的是暂存区所对应的文件快照;
备注:分支的概念后需讲解!
(4)三者的图示
--------------------------------分割线------------------------------------------
1、为什么需要git?
版本控制可以帮助我们实现两件事情:
(1)自动记录每次的修改,并且可以方便的切换到任一版本--->如何切换,当前所有的版本!
(2) 可以完成多人协作开发-->冲突!
2、Git和GitHub有何区别?
Git是一款免费开源的分布式版本控制系统 --- 工具,就是一个软件
Github是用Git做版本控制的代码托管平台 --- 平台 就是一个网站
3、Git和代码托管中心
局域网环境下:GitLab
互联网环境下:GitHub(国外)、码云(国内)
代码托管中心的主要任务是:维护远程库