Git版本控制详细资料
Git安装基本配置
下载安装(一路next)
打开bash终端(git专用)
命令: git -v
(查看版本号)
配置: 用户名和邮箱,应用在每次提交代码版本时表明自己身份
命令:
git config --global user.name "FT"
git config --global user.email "FT@163.com"
查看配置命令:
git config --list
Git工作区
Git仓库(repository):记录文件状态内容的地方,存储着修改记录
创建:
1、把本地文件夹装换成Git仓库: 命令 git init
2、从其他服务器上克隆Git仓库
Git的三个区域:
1、工作区: 实际开发时操作的文件夹
2、暂存区: 保存之前的准备区域(暂存改动过的文件)
3、版本区: 提交并保存暂存区中的内容,产生一个版本快照
命令 | 作用 |
---|---|
git add 文件名 | 暂存指定文件 |
git add . | 暂存所有改动的文件 |
git commit -m '注释说明' | 提交并保存,产生版本快照 |
查看暂存区工作文件: git ls-files
Git文件状态:
Git文件2种状态:
命令: git status -s
1、未跟踪: 新文件,从未被Git管理过
2、已跟踪: Git已经知道和管理的文件
文件状态 | 概念 | 场景 |
---|---|---|
未跟踪(U) | 从未被Git管理过 | 新文件 |
新添加(A) | 第一次被Git暂存 | 之前版本记录无此文件 |
未修改('') | 三个区域统一 | 提交保存后 |
已修改(M) | 工作区内容变化 | 修改了内容产生 |
Git暂存区使用:
暂存区: 暂时存储,可以临时恢复代码内容,与版本库解耦
暂存区 -> 覆盖 -> 工作区
命令: git restore 目标文件
(注意: 完全确认覆盖时使用)
从暂存区移除文件,命令: git rm --cached 目标文件
Git回退版本
概念: 把版本库某个版本对应的内容快照,恢复到工作区/暂存区
查看历史提交:
git log --oneline
git reflog -- oneline
回退命令:
git reset --soft 版本号
(保留暂存区和工作区内容)
git reset --hard 版本号
(不保留暂存区和工作区原本内容)
git reset --mixed 版本号
(不保留暂存区,工作区保留(默认) 先覆盖到暂存区,再用暂存区对比覆盖工作区)
注意1: 只有记录在版本库的提交记录才能恢复
注意2: 回退后,继续修改->暂存->提交操作即可(产生新的提交记录过程)
删除文件
git 忽略文件
概念: .gitignore 文件可以让 git 彻底忽略跟踪指定文件
目的: 让 git 仓库更小更快,避免重复无意义的文件管理
分支
概念: 本质上是值向提交节点的可变指针。默认名字是 master
注意: HEAD指针影响工作区/暂存区的代码状态
场景: 开发新需求、修复Bug,保证主线代码随时可用,多人协同开发提交效率
例如:
1、在现有代码上创建新分支完成内容列表业务
2、突然需要紧急修复Bug - 单独创建分支解决BUg
例: 创建内容列表content分支,并产生提交记录
步骤:
1、创建分支命令: git branch 分支名
(git branch
命令可以查看所有分支)
2、切换分支命令: git checkout 分支名
3、工作区准备代码并暂存提交
其他命令:
1、创建分支并切换到创建的分支: git checkout -b 分支名
2、将本地的分支推送到远程仓库进行保存: git push -u origin 分支名
(origin gitHub中创建的仓库别名)
3、将本地的分支合并到本地的 master 分支:
git checkout master
git merge 分支名
4、删除本地的分支: git branch -d 分支名
注意: 提交记录的顺序按照产生的先后顺序排列,而非合并的先后顺序
分支 - 合并冲突
Git远程仓库
概念: 托管在网络或其他网络中你的项目版本库
作用: 保存版本库的历史记录,多人协作
创建: 公司自己服务器/第三方托管平台(Gitee,GitLab,GitHub...)
例: 需求: 创建远程版本库,并把本地Git仓库推送上去保存
步骤:
1、注册第三方托管平台网站账号
2、新建仓库得到远程仓库Git地址
3、本地Git仓库添加远程仓库原点地址
命令: git remote add 远程仓库别名 远程仓库地址
例: git remote add origin https://gitee.com/xxx/work.git
4、本地Git仓库推送版本记录到远程仓库
命令: git push -u 远程仓库别名 本地和远程分支名
例: git push -u origin master
完整写法: git push --set-upstream origin master:master
查看本地仓库中有哪些远程仓库的地址 git remote -v
删除远程仓库地址 git remote remove origin
拉取远程仓库: git pull origin master
强制拉取远程仓库: git pull --rebase origin master
Git 远程仓库-克隆
概念: 拷贝一个Git仓库到本地,进行使用
命令: git clone 远程仓库地址
例: git clone https://gitee.com/xxx/work.git
效果: 在运行命令所在文件夹, 生成wor项目文件夹(包含版本库,并映射到暂存区和工作区)
注意1: Git 本地仓库已经建立好和远程仓库的链接
注意2: 仓库公开随意克隆,推送需要身为仓库团队成员