一. Git 概述
- Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
- Git易于学习、占地面积小、性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。
1.1 何为版本控制
- 版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
- 版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
1.2 为什么需要版本控制
- 从个人开发过渡到团队协作。
1.3 版本控制工具
1.3.1 集中式版本控制工具
CVS、SVN(Subversion)、VSS……
- 集中化的版本控制系统诸如CVS、SVN等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连接到这台服务器,取出最新的文件或者提交更新。多年以来这已经成为版本控制系统的标准做法。
优缺点:
- 优点:每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌握每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来的轻松容易。
- 缺点:中央服务器的单点故障期间,谁都无法提交更新,也就无法协同工作。
1.3.2 分布式版本控制系统
Git、Mercurial、Bazaar、Darcs……
- 像Git这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
- 分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
- 服务器断网的情况下也可以进行开发(因为版本控制是在本地进行)
- 每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
1.4 Git简介
1.5 Git工作机制
- 工作区:代码存放的磁盘的目录位置
1.6 Git 和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。(从本地库推送(push)到远程库)
1.6.1 局域网
GitLab(基于局域网)
1.6.2 互联网
Github(基于外网)
Gitee码云(基于国内网站)
二. Git 安装
1.搜索git官网,会有最新版git下载链接Githttps://git-scm.com/
2.点击Download for Windows,进入如下界面中点击下载(自动下载与电脑位数匹配的程序)
3.下载之后双击安装
①GNU霸王条款,无脑同意next就行
②安装路径(最好放在没有中文且没有空格的路径里面)
③Git选项配置,推荐默认配置,直接next
④后面一直next就行了
4.如何看是否安装成功
- 右击桌面选择显示更多选项,有下面的选择则安装成功
三. Git 常用命令
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.email 邮箱 | 设置用户签名 |
git init | 初始化本地库 |
git status | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m "日志信息" 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset --hard 版本号 | 版本穿梭 |
3.1 设置用户签名
3.1.1 基本语法
git config --global user.name 用户名
git config --global user.email 邮箱
- 打开open git bash here
- 按照基本语法设置用户名和邮箱(实际和虚拟的皆行)
- 设置好了之后去c盘用户文件夹找到.gitconfig打开,显示你设置的用户名和邮箱即为成功。
3.1.2 说明
签名的作用是区分不同的操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。
注意:这里设置的用户签名和邮箱与将来登录GitHub(或其他代码托管中心)的账号没有任何关系。
3.2 初始化本地库
3.2.1 基本语法
git init
3.2.2 案例实操
如图,初始化成功后该文件夹就会出现一个 .git 的文件夹。(如果没有,点击文件夹上方查看打开隐藏项目)
- Windows系统有D:、C:的盘符存在,所以在文件夹中进入git bush here比较好。
- git bash here界面里面的命令操作和Linus系统是一样的。
3.3 查看本地库状态
3.3.1 基本语法
git status
3.3.2 初次查看:工作区没有任何文件
- On branch master // 当前本地库位于分支master
- No commits yet //目前还没有提交过任何东西
- nothing to commit //没有东西可以提交
3.3.3 新增文件 & 再次查看状态(检测到未追踪的文件)
- untracker files //未被追踪的文件(只存在工作区域,git并未追踪 )
- 使用git add去追踪文件
3.4 添加暂存区
3.4.1 基本语法
git add name(这个name是你要添加的文件或者文件夹的名称)
3.4.2 查看状态(检测到暂存区有新文件)
文件从红色字体变成了绿色字体,说明git已经追踪(知道)了这个文件。
使用“git rm --cached 文件名”可以从暂存区删除你要删除的文件。
3.5 提交本地库
3.5.1 基本语法
git commit -m "日志信息" name(文件名)
3.5.2 查看提交(没有文件需要提交)
git bash窗口中第三行显示的就是你commit成功的状态,后面 test hello world 就是基本语法中的“日志信息”。
git bush窗口第四行提示:1个文件被改变,7行内容被插入。
3.6 修改文件
3.6.1 基本语法
- vim name(文件名)
- 也可以直接打开文件进行修改,不需要在 git bash here 窗口通过指令进行修改。
文件已被修改(相当于新文件),需要从工作区再次add到暂存区,并且需要commit。
3.7 历史版本(版本穿梭)
3.7.1 查看历史版本
- git reflog 查看版本信息
- git log 查看版本详细信息
3.7.2 版本穿梭
git reset --hard 版本号(上图中黄色的字符串就是版本号,分为详细版本号和精简版本号)
穿越之后,你的指针就指向你的穿越目标所对应的版本,并修改时从指针所指为基础开始修改。
附:cat 文件名——可以查看文件内容
四. Git分支操作
4.1 什么是分支?
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个人物的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也就是指针的运用)
4.2 分支的好处
同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
4.3 分支的操作
兄弟盟,先点赞收藏,下周末之前一定更新结束!!!!!!