这是我参与「第四届青训营 」笔记创作活动的第6天
前言:
在项目开始之前,我们就应该需要了解如何去使用Git,以及如何使用Git去创建分支、合并分支等等。要想实现项目的团队化管理,增强团队的协作能力,Git必不可少,本文也将介绍关于Git的一些知识以及Git指令使用。
一、Git介绍
1、分布式版本控制系统
典型代表:Git
特点:1. 基于服务器、客户端的运行模式
2. 服务器保存文件的所有更新版本
3. 客户端是服务器的完整备份,并不是只保留文件的最新版本
优点:1. 联网运行,支持多人协作开发
2. 客户端断网后支持离线本地提交版本更新
3. 服务器故障或损坏后,可使用任何一个客户端的备份进行恢复
2、什么是Git?
Git 是一个开源的分布式版本控制系统,是目前世界上最先进、最流行的版本控制系统。可以快速高效地处理从很小到非常大的项目版本管理。
特点:项目越大越复杂,协同开发者越多,越能体现出 Git 的高性能和高可用性!
3、Git的特性
- 直接记录快照,而非差异比较
- 近乎所有操作都是本地执行
4、Git的三个区域
使用 Git 管理的项目,拥有三个区域,分别是工作区、暂存区、Git 仓库。
5、Git的三种状态
已修改: 表示修改了文件,但还没将修改的结果放到暂存区已暂存: 表示对已修改文件的当前版本做了标记,使之包含在下次提交的列表中已提交: 表示文件已经安全地保存在本地的 Git 仓库中
6、Git的工作流程
- 在工作区中修改文件
- 将你想要下次提交的更改进行暂存
- 提交更新,找到暂存区的文件,将快照永久性存储到 Git 仓库
二、Git基础
1、安装并配置Git
- 下载Git:下载地址
- 配置用户信息
git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"
注意: 如果使用了global选项,那么该命令只需要运行一次,即可永久生效。
配置的用户名和邮箱地址,会被写入到 C:/Users/用户名文件夹/.gitconfig文件中。这个文件是 Git 的全局配置文件,配置一次即可永久生效。
3. 检查配置信息
//查看所有的全局配置项
git config --list --global
//查看指定的全局配置项
git config user.name
git config user.email
- 获取帮助信息
//获取git config命令的快速参考
git config -h
//打开git config 命令的帮助手册
git help config
2、Git的基本操作
- 获取 Git 仓库的两种方式
- 将尚未进行版本控制的本地目录转换为 Git 仓库
- 从其它服务器克隆一个已存在的 Git 仓库
- 在现有目录中初始化仓库
- 在项目目录中,打开
git bash - 执行
git init命令将当前的目录转化为 Git 仓库
git init命令会创建一个名为.git的隐藏目录,这个.git目录就是当前项目的 Git 仓库,里面包含了初始的必要文件,这些文件是 Git 仓库的必要组成部分
- 工作区中文件的四种状态
直接看图:
4. 检查文件的状态
git status
- 以精简的方式显示文件状态
git status -short
//简写
git status -s
- 跟踪新文件
git add xxx
//例如:
git add index.html
- 提交更新
git commit -m "提交的信息"
- 向暂存区中一次性添加多个文件
git add .
- 取消暂存的文件
git reset HEAD 文件名称
三、Git分支
1、Git分支介绍
在进行多人协作开发的时候,为了防止互相干扰,提高协同开发的体验,建议每个开发者都基于分支进行项目功能的开发。在初始化本地 Git 仓库的时候,Git 默认已经帮我们创建了一个名字叫做 master 的分支。通常我们把这个 master 分支叫做主分支。在实际工作中,master 主分支的作用是:用来保存和记录整个项目已完成的功能代码。因此,不允许程序员直接在 master 分支上修改代码,因为这样做的风险太高,容易导致整个项目崩溃。由于程序员不能直接在 master 分支上进行功能的开发,所以需要从master分支上切出一个分支即功能分支,当新功能开发且测试完毕后,最终需要合并到 master 主分支上。
2、本地分支操作
- 查看分支列表
git branch - 创建新分支
git branch 分支名称 - 切换分支
git checkout login - 创建并切换到新分支上
git checkout -b 分支名称 - 合并分支
//首先切换到master分支
git checkout master
//如何在master分支上执行下列指令,将login分支的代码合并到master分支上
git merge login
- 删除分支
git branch -d 分支名称 - 遇到冲突时合并
//首先打开含冲突的文件,手动解决冲突之后,再执行下列命令
git add .
git commit -m "解决了冲突"
3、远程分支操作
- 将本地分支推送到
远程仓库
//-u表示把本地分支和远程分支进行关联,只在第一次推送的时候需要带-u参数
git push -u远程仓库的别名本地分支名称:远程分支名称
//实际案例:
git push -u origin payment: pay
//如果希望远程分支的名称和本地分支名称保持一致,可以对命令进行简化:
git push -u origin payment
注意:第一次推送分支需要带 -u 参数,此后可以直接使用 git push 推送代码到远程分支。
2. 查看远程仓库中所有的分支列表
git remote show 远程仓库名称
- 跟踪分支
跟踪分支指的是:从远程仓库中,把远程分支下载到本地仓库中。需要运行的命令如下:
// 从远程仓库中,把对应的远程分支下载到本地仓库,保持本地分支和远程分支名称相同
git checkout远程分支的名称
//示例:
git checkout pay
//从远程仓库中,把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
git checkout -b 本地分支名称远程仓库名称/远程分支名称
//示例:
git checkout -b payment origin/pay
- 拉取远程分支的最新的代码
//从远程仓库,拉取当前分支最新的代码,保持当前分支的代码和远程分支代码一致
git pull
- 删除远程分支
//删除远程仓库中,指定名称的远程分支
git push 远程仓库名称--delete远程分支名称
#示例:
git push origin --delete pay
四、总结
1、常用指令
Git的基本指令中的常用指令:git init、git add .、git commit –m "提交消息"、git status、git status -s
Git的分支指令中的常用指令:git checkout -b 新分支名称、git push -u origin 新分支名称、git checkout 分支名称、git branch
2、其他
- 在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。
- 工作区的文件被修改了,但还没有放到暂存区,就是已修改状态。如果文件已修改并放入暂存区,就属于已暂存状态。 如果 Git 仓库中保存着特定版本的文件,就属于已提交状态。