Git 介绍
Git 是一款开源免费的分布式的版本控制系统,是一个应用程序
作用
版本控制系统在项目开发中作用重大,主要的功能有以下几点
- 代码备份
- 版本回退
- 协作开发
- 权限控制
下载安装
下载地址 https://git-scm.com/
安装方式与 QQ 安装相同,一路下一步,中间可以设置软件的安装路径
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5ZbbDolg-1626267853909)(assets/Git安装注意点.png)]
Git 使用
起始配置
第一次使用 Git 的时候,会要求我们配置用户名和邮箱,用于表示开发者的信息
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
注意命令之间的空格
可以使用 git config -l
命令来查看配置信息 (使用 q 字母退出配置查看窗口)
基本操作
Git 的起始操作包括以下几个步骤
- 创建并进入空文件夹
- 右键 -> 点击 Git Bash Here 启动命令行
git init
仓库初始化- 创建一个初始化文件 index.html
touch index.html
git add index.html
将文件加入到暂存区git commit -m '注释'
提交到仓库 m 是 message 单词的缩写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tJaiDnOR-1626267853914)(assets/Git 步骤情况介绍.jpg)]
git init
仓库初始化
touch index.html
创建index.html文件
git add index.html
文件加入暂存区
git add -A
将全部文件加入暂存区
git commit -m '注释'
文件提交到仓库
git commit
文件提交到仓库 (会出现vim的窗口,输入字母i a o 任意一个,进入编辑模式,书写备注,按esc键,切换到英文输入法,输入:wq + 回车)
ls
查看文件的内容
.git 目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wuHa3Cyi-1626267853920)(assets/1576587724690.png)]
- hooks 目录包含客户端或服务端的钩子脚本,在特定操作下自动执行
- info 信息文件夹. 包含一个全局性排除文件,可以配置文件忽略
- logs 保存日志信息
- objects 目录存储所有数据内容,本地的版本库存放位置
- refs 目录存储指向数据的提交对象的指针(分支)
- config 文件包含项目特有的配置选项
- description 用来显示对仓库的描述信息
- HEAD 文件指示目前被检出的分支
- index 暂存区文件,是一个二进制文件 (
git ls-files
查看暂存区的内容)
切记: 不要手动去修改 .git 文件夹中的内容
版本库的三个区域
-
工作区(代码编辑区)
-
暂存区(修改待提交区)
-
仓库区(代码保存区)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JEBOG4Xt-1626267853927)(D:\course\work\day03\课件\课件截图\版本库的三个区域.png)]
常用命令
-
git status 版本状态查看 ,查看当前 Git 仓库的状态
常见状态
On branch master 在 master 分支上 nothing to commit, working tree clean 没有什么需要提交, 工作树是干净的 表明:工作区的所有的修改都已经提交
Untracked files: 未跟踪的文件(新的文件) (use "git add <file>..." to include in what will be committed) cart.html 表明:有新增文件
Changes to be committed: 以下修改将会被提交 (use "git restore --staged <file>..." to unstage) new file: cart.html 表明:暂存区有新的文件,如果想把文件从暂存区移除使用`git restore --staged <file>`, 或者可以使用 git commit 命令进行提交
Changes not staged for commit: 为登上舞台修改提交 (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: app.css modified: app.js 表明:在工作区对这几个文件进行了内容修改.
关于颜色
- 红色 红色的文件 修改只存在于『工作区』(新增,修改,删除)
- 绿色 绿色的文件 此修改存在于『工作区与暂存区』(也就说明要执行 git commit即可)
-
git add -A 添加所有新文件到暂存区
-
git commit -m '注释 ’ 提交修改并注释
历史版本回滚
回滚
查看历史记录
git log 查看提交日志
git log --oneline
如果内容偏多, 需要使用方向键上下滚动, 按
q
退出
根据版本号进行回滚
git reset --hard b815fd5a6ae655b521a31a9
进行版本回退时,不需要使用完整的哈希字符串,前七位即可
版本切换之前,要对工作区内容进行提交 add commit
找不到版本号的情况
查看所有的操作记录
git reflog
配置忽略文件
仓库中没有提交该文件
项目中有些文件不应该存储到版本库中,Git 中需要创建一个文件 『.gitignore』 配置忽略,一般与 .git 目录同级。
常见情况有:
- 临时文件.
- 多媒体文件,如音频,视频
- 编辑器生成的配置文件 (.idea)
- npm 安装的第三方模块
# 忽略 .swp 文件 .mp4文件
*.idea
*.mp4
# 忽略指定的文件 .idea
.idea
# 忽略当前文件夹下的 node_modules 文件和文件夹
/node_modules
分支
分支是 Git 重要的功能特性之一,开发人员可以在主开发线的基础上分离出新的开发线。branch
基本操作
创建分支
name 为分支的名称
git branch name
查看分支
git branch
切换分支
git checkout name
合并分支
git merge name
删除分支
git branch -d name
创建并切换分支
git checkout -b name
注意: 每次在切换分支前 提交工作区的修改
冲突
当多个分支修改同一个文件后,合并分支的时候就会产生冲突。冲突的解决非常简单,『将内容修改为最终想要的结果』,然后继续执行 git add 与 git commit 就可以了。
如何确认当前仓库中是有冲突的?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sPTDOKF3-1626267853931)(assets/1606440516595.png)]
- 定位产生冲突的文件 (git status)
- 修改冲突文件的内容为最终正确的结果
- git add -A 和 git commit 提交即可
当多个分支修改同一个文件后,合并分支的时候就会产生冲突。冲突的解决非常简单,『将内容修改为最终想要的结果』,然后继续执行 git add 与 git commit 就可以了。
如何确认当前仓库中是有冲突的?
[外链图片转存中…(img-sPTDOKF3-1626267853931)]
- 定位产生冲突的文件 (git status)
- 修改冲突文件的内容为最终正确的结果
- git add -A 和 git commit 提交即可