Git介绍
- Linux Torvalds(Linux作者)编写
- 是一个开源的分布式版本控制系统软件
Git基本概念
- 工作区:存放从仓库中提取出来的文件的地方,放在磁盘上供你使用或修改
- 暂存区:就是一个索引文件,保存了下次将提交的文件列表信息
- 仓库:保存所有数据的地方,这里边有提交的所有版本的数据
- 远程仓库:托管代码的地方,可供其他人浏览,下载代码的服务器
Git工作流程
Git常用的子命令
- config 修改git配置
- init 初始化本地仓库
- add 添加修改到暂存区
- commit 提交修改到暂存区
- status 查看当前状态
- clone 将远程服务器的仓库克隆到本地库
- push 提交修改到远程服务器
- log 本地版本库提交记录(详细)
- log --pretty=oneline 本地版本库提交记录(简略)
- log --oneline 本地版本库提交记录(极简)
Git文件状态
未跟踪 ---> 已暂存 ---> 已提交 ---> 已修改
Git基础配置
#设置当前系统用户的git用户名
git config --global user.name 用户名
#设置当前系统用户的git用户邮箱
git config --global user.email 用户邮箱
#设置版本库默认分支
git config --global init.defaultBranch master
#查看已有git配置
git config --list
Git指针
- HEAD指针的概念
head指针是一个可以在任何分支和版本移动的指针
通过移动指针我们可以将数据还原至任何版本
- head指针操作
git log --oneline #使用log指令查看版本信息,获取指针
git reset --hard 版本号 #使用reset子命令回滚到指定版本
git reflog #head的移动轨迹
Git分支
- 概念:分支可以让开发分多条主线同时进行,每条主线互不影响。
— 按功能模块分支、按版本分支
— 分支可以合并
- 常见的分支
master分支(主分支,是代码的核心)
develop分支 (最新开发成果的分支)
release分支(为发布新产品设置的分支)
hotfix分支(为了修复软件的bug缺陷的分支)
feature分支 (为开发新功能设置的分支)
- 指令
git branch -v #查看分支信息
git branch 分支名 #创建分支
git checkout 分支名 #切换分支
git branch -d 分支名 #删除分支
git merge hotfix #将hotfix合并到master分支,执行前必须切换到master分支
#解决分支冲突
#查看有冲突的文件,直接修改有冲突的文件,修改为最终需要的文件内容
#修改完成后,正常add,commit提交,解决冲突
Git标签
标签用于标记某一个提交点,唯一绑定一个固定的commitId,想当于为这次提交记录指定一个别名,方便提取文件。
可以为重要的版本打上标签,标签可以是一个对象,也可以是一个简单的指针,但是指针不会移动
gti tag #查看标签
git tag 标签名 #使用tag子命令打标签
git tag -d 标签名 #删除标签
Git服务器
- git服务器概念
C/S架构的Git服务端,是存放代码的公用平台
是存放代码的公用平台,多人并行协作的核心部分
通常单独部署在一台独立的服务器上
客户端可以通过网络访问服务器上的仓库
- 常用的git服务器
GitHub是一个基于git实现的在线托管的仓库,向互联网开放,企业版收费
gitee码云,是oschina公司免费给企业使用的公用代码托管平台,不需要自己搭建环境
gitlab类似于github,一般用于企业内部搭建git私有服务