1.Git的基本概念
概念:git是一个开源的分布式版本控制系统,可以有效,高速处理从很小到很大的项目版本管理,Git可以帮助开发人员跟踪和管理代码的变化,保留历史记录,并协作开发。
2.Git安装
链接:https://pan.baidu.com/s/1VXh-SgbjYR8CGdWbRZMpHA?pwd=gbk1
提取码:gbk1
- 安装过程,选择默认安装即可;
- 安装后,在开始菜单栏找到 Git Bash ,点击显示出类似命令行的窗口,即安装成功。
3.Git安装后的基本配置
3.1 设置用户名和邮箱
目的:因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识
设置用户名 :git config --global user.name "用户名"
设置邮箱 :git config --global user.email "邮箱"
--global 参数:(用了这个参数,表示你这台机器上所有的Git仓库都会 使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址)
4.Git文件的三种状态和工作区域
- 使用Git操作文件时,文件的三种状态如下:
状态 描述 已提交(committed) 表示数据已经保存在本地数据库 已修改(modified) 表示文件已修改,但是还未保存到本地数据库 已暂存(staged) 表示对已经修改的文件做了标记,让其在其次保存在提交的快照中
2. Git项目的三个工作区域:工作区、暂存区和Git仓库
5.创建本地仓库(创建版本库)
版本库:即是一个被Git管理的目录,里面的所有文件都可以被Git管理,每个文件的增删改,Git都可以跟踪记录,同时可以在通过记录的历史恢复文件。
- 创建一个文件夹,作为Git的本地仓库(可以在任意地方设置仓库,本人是在D盘)
- 对仓库进行初始化 :git init
6.常见命令
- git add 文件名 (工作区——>暂存区)
- git commit -m "注释语句" (暂存区——>本地仓库)
- git status :查看修改后的状态(暂存区,工作区)
- git log :查看提交日志
- git init :初始化仓库
- git reset --hard commitID :版本回退 commitID可以通过git log 或者 git reflog查看,其中hard是一个指针,它指向当前所在的本地分支中最新的提交
- git revert 完全删除最新的提交,并且删除相应的更改
7.案例演示
任务一:将新建的文件(git01.txt)提交到本地仓库
任务二:将修改后的git01.txt,提交到本地仓库
- 在本地仓库中新创建一个文件git01.txt
- 将处于工作区的git01.txt提交到暂存区
- 将处于暂存区的git01.txt提交到本地仓库中
- 修改git01.txt
- 查看git01.txt状态,将处于git01.txt(修改后的)提交到暂存区
- 将暂存区的git01.txt提交到本地仓库,并查看日志
8.分支
分支:可以将你的工作从开发的主线分离出来,进行修改开发,避免影响主线的开发
1.git branch :查看本地分支
2.git branch 分支名 :创建本地分支
git branch fee1 //在本地创建一个新的分支,名字是fee1
3.git checkout 分支名 :切换到指定分支
4.git merge 分支名 :合并分支(一个分支上的提交可以合并到另外一个分支)
5.git branch -d 分支名 :删除分支,需要做各种检查
6.git branch -D 分支名 :删除分支,强制删除
9.冲突
含义:当对不同的分支对同一个文件的同一行内容修改后,合并分支会发生冲突
解决办法:手动解决
流程:
- 处理文件中发生冲突的地方,选择自己需要的内容
- 将解决完冲突的文件加入暂存区
- 提交到仓库区
解决方法一:
- 使用命令 git merge 进行分支的合并 ,如果发送冲突,会停止在合并冲突的文件中
- 在合并冲突的文件中找到冲突的地方,手动修改代码
- 修改完冲突后,使用
git add
命令将修改后的文件加入缓存区(暂存区) - 最后再使用
git commit
命令提交修改,完成合并操作
解决方法二:
git fetch
:先从远程仓库拉取最新版本的代码;git diff
:查看本地代码与远程代码之间的差异;- 手动修改代码,指定对代码的修改,通常使用编辑器来编辑冲突文件;
git add
:将修改后的文件重新添加至暂存区;git commit
:提交修改后的代码。
10.Git远程仓库
gitHub: https://github.com/ :是一个面向开源及私有软件项目的托管平台
码云: https://gitee.com/ :是国内的一个代码托管平台
GitLab: https://about.gitlab.com/ :是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具
10.1:在码云上新建远程仓库
10.2:配置SSH公钥
- 生成公钥:ssh-keygen -t rsa
- 查看公钥 cat ~/.ssh/id_rsa.pub
- 在码云配置公钥
- 查看公钥是否配置成功 ssh -T git@gitee.com
10.3将本地仓库的代码上传到远程仓库
- 步骤一:复制远端服务器的URL
- 步骤二建立本地仓库和远程仓库连接 git remote add <远端名称> <仓库路径>
- 将本地仓库的东西上传到远程仓库 git push [-f] [--set-upstream][远端名称][本地分支名][:远端分支名]
4. 注意事项: 如果在远程仓库中还不存在该分支(上传时指定的分支),则会在远程仓库中创建 一个名字相同的新的分支。
11. Git如何处理大型二进制文件
Git主要针对的是纯文本文件,而对于二进制文件(音频,图像....)处理相对较差
解决办法:通过Git LFS 进行大型二进制文件的管理 :
Git LFS :可以将大型二进制文件存储在单独的存储库中,并使用指针来跟踪这些文件。当需要访问这些文件时,Git LFS会从远程存储库中自动下载所需的文件
12. 抓取,拉取,克隆
12.1 抓取
命令格式: git fetch [远端名称] [分支名]
含义: 将远程仓库的更新都抓取到本地,不进行合并
12.2 拉取
命令格式: git pull [远端名称] [分支名]
含义: 将远程仓库的修改拉到本地并自动进行合并
12.3 克隆
命令格式: git clone <仓库路径> [本地仓库]
含义:将一个远程仓库克隆到本地