01.GIT概述
Git是一个分布式版本控制系统,常用于协同开发和版本管理的工具。它可以跟踪文件的修改、记录历史版本,并支持多人协同工作。通过Git,你可以轻松地创建和切换分支、合并代码、回滚修改等操作。
以下是Git一些常用的命令和功能:
git init: 在当前目录初始化一个新的Git仓库。 git clone [URL]: 克隆(下载)远程仓库到本地。 git status: 查看工作区和暂存区的状态。 git add [file]: 将文件添加到暂存区。 git commit -m "message": 提交暂存区的文件变更,创建一个新的版本。 git push: 将本地分支上的提交推送到远程仓库。 git pull: 从远程仓库拉取最新的代码到本地分支。 git branch: 查看分支列表。 git checkout [branch]: 切换到指定分支。 git merge [branch]: 将指定分支的代码合并到当前分支。 git log: 查看提交日志历史。 git diff: 查看文件的修改差异。 git stash: 暂存当前工作区的修改,方便切换分支或恢复之后再应用修改。
目标
- 说出GIT的作用以及特点
内容
Git是目前世界上最先进的分布式文件版本控制系统(没有之一)
版本控制 所谓的版本控制就是将一组文件的改动记录下来,形成版本历史,以便需要时恢复
GIT作用
代码共享
每位开发者可以使用Git将自己的代码上传到云服务器上,同时使用Git还可以将其他人上传的代码下载到自己的电脑上,这样就实现了代码共享
回溯版本
在开发的过程中其实还会遇到各种奇葩问题,比如自己心血来潮写了一段超级牛×的代码,本着闲着也是闲着的思想,在这段代码的基础上又进行了调优,但是优没调成,代码还给整的不能用了。鉴于马上要要交活了,这个时候就打算放弃,但是你发现原来能用的代码已经被改的面目全非,不能用了,那这就太让人崩溃了。这个时候就幻想着如果这两小时什么事情都没有发生该多好,如果能时间倒流该多好。Git告诉你,这事我能做。Git除了可以帮我们保存代码,还可以保存每次上传的痕迹,每上传一次就做一次备份,上传3次就备份3次,每次备份就相当于一个版本,任意时间可以通过Git查询曾经提交过的每一个版本对应的内容,这样就可以随时恢复到之前任意上传时间对应的状态了
追踪信息
使用Git的过程中大部分时间是管理自己写的东西,但是也会存在一些情况需要你去改别人的代码或者几个人编辑同一个文件。此时同一个文件,你改改,我改改,最后算谁的啊?出了问题你追责都没的追,怎么解决这个问题呢?Git提供了强制记录日志的功能,每次上传信息要求书写日志,可以记录本次上传的相关信息。比如写清楚本次上传的内容啊,对应的说明啊,等等。关于日志的内容书写格式并不是规范类的东西,只能算是一个约定,因此每个公司对开发者提交日志都有自己的要求,上传时写什么东西,这样出了问题就可以进行信息追踪了
小结
什么是git,它的作用是什么
1)Git 是一个开源的分布式版本控制系统
2)作用:
1.代码共享
2.信息追踪
3.版本回溯
GIT与SVN的区别【面试题,不用理解,概念性记忆】
Git 是分布式的,SVN 不是
Git 把内容按元数据方式存储,而 SVN 是按文件
Git 分支和 SVN 的分支不同
Git 没有一个全局的版本号,而 SVN 有
Git 的内容完整性要优于 SVN
02.GIT相关概念
目标
可以画图说明GIT中工作区【Workspace】、暂存区【Index Stage】、版本库、运程仓库【Remote】的作用
内容
git没有中央版本库,但是为了方便开发小组的成员们进行代码共享,我们通常会搭建一个远程的git仓库。和svn不同的是开发者本地也包含一个完成的git仓库,从某种程度上来说本地的仓库和远程的仓库在身份上是等价的,没有主从。
# 1.工作区:就是你平时存放项目代码的地方。 位置:一个文件夹通过git init 设置成一个git可以管理的文件夹时,这个文件夹里的内容(除去.git文件夹)就是工作区。
# 2.仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。就是工作区有一个隐藏目录 .git,它不算工作区,而是 Git 的版本库 # 3.暂存区:英文叫 stage 或 index。是用来暂时存放工作区中修改的内容,可以理解为一个中转站。 1)位置:一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 2)只是一个文件 3)包含在版本库中 4)为什么需要暂存区: 1.如果没有暂存区,如果想要提交文件就需要一个个修改然后,提交,比较麻烦,但是有了暂存区就可以一次性将所需要的文件从暂存区 直接修改后提交。 2.如果没有暂存区,你修改的文件只可以立刻保存到版本库中,但是这样很容易对别人的工作造成影响
# 4.Head :指向最新放入仓库的版本 # 5.master:是我们的主分支。当我们git init后,并不会立刻产生分支。而是我们添加了一个文件,并git add,git commit后这时我们查看分支情况便可以看到master分支了。是本地仓库一部分。 # 6.objects:是git对象库,是用来存储各种创建的对象以及内容. # 7.远程仓库:托管代码的服务器,常用github。码云。gitlab
小结
- 什么是工作区
就是我们自己创建的目录,放置 我们要管理的文件 - 什么是暂存区
在将工作区内容加入到本地仓库,在加入到本地仓库前,是先放置在暂存区的