1. Git概述
Git是一个开源的分布式版本控制系统。
1.1 基本概念
- 本地仓库:开发人员自己电脑上的仓库。
- 工作区:包含.git文件夹的目录就是工作区,也称为工作目录,主要用于存放开发的代码。
- 暂存区:.git文件夹中有一个index文件,就是暂存区,也可以叫stage。暂存区是一个临时保存修改文件的地方。
- 版本库:.git隐藏文件夹就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等。
- 代码托管中心:基于网络服务器的远程代码仓库,一般称为远程库。局域网里有GitLab,互联网里有GitHub、Gitee码云。
1.2 主要特点
- 分布式版本控制:每个开发者都可以在本地拥有一个完整的代码仓库,包含项目的全部历史记录,无需依赖中央服务器,可在无网络连接状态下进行版本控制和代码管理。
- 快速高效:Git设计优化了存储和传输过程,使用了快速的算法,使其在处理大型项目和大量数据时表现得非常高效。同时,Git的操作命令也非常快速,开发者能够快速进行版本控制操作。
- 分支管理:Git的分支管理功能非常强大,可以轻松创建、合并和删除分支,使得团队协作更加灵活和高效。每个分支都可以独立进行开发,不影响其他分支的代码。
- 强大的版本控制功能:Git可以对代码的每一次修改进行版本控制,记录修改的时间、内容、作者等信息,并可以方便地查看和比较不同版本之间的差异。
- 完整性保证:Git使用哈希值来标识版本,每一次提交的代码都会计算一个唯一的哈希值,保证了版本的完整性和可追溯性。
- 多种协议支持:Git支持多种协议和方式进行代码的传输和交换,包括HTTP、SSH等,团队成员可以方便地共享代码和进行协作开发。
- 缓存机制:Git引入了缓存机制,将文件的变化在内存中暂存,只有在需要提交时才会写入磁盘,大大提高了文件的读写效率。
- 灵活的工作流程:Git提供了灵活的工作流程,可以根据团队的需求配置不同的工作流程,适应不同的开发模式和项目需求。
2. Git基本命令
2.1 基本配置
# 设置用户信息
git config --global user.name 'zhangsan'
git config --global user.email 'zhangsan@163.com'
# 查看配置信息
git config --global user.name
git config --global user.email
2.2 初始化仓库
# 初始化git仓库(执行之后会在项目目录下创建“.git”的隐藏目录)
git init
2.3 文件提交
# 将文件加入暂存区
git add Hello.java
# 将所有修改加入暂存区
git add .
# 将修改提交到本地仓库,提交记录内容为:修改
git commit --m '修改'
# 查看修改状态
git status
2.4 文件恢复
# 修改未提交恢复到未修改前
git checkout Hello.java
# 提交到暂存区状态退回到未提交
git reset head Hello.java
2.5 版本退回
# 查看日志,确定需要回到的版本
git log
# 回退操作(commitID)
git reset --hard 91e0b4f23d3edf67ab91f9bc12bda31d743ae77f
3. Git远程仓库
3.1 Git克隆远程仓库
# 克隆远程仓库
git clone https://gitee.com/zhangsan/test.git
3.2 本地仓库配置到远程仓库地址
# 本地仓库配置到远程仓库地址
git remote add origin https://gitee.com/zhangsan/test.git
3.3 Git拉取远程仓库内容
# 推送到远程仓库
git pull
3.4 Git推送到远程仓库
# 推送到远程仓库
git push -u origin master