博客须知
- 本人收到小厂实习,leader说项目很大且分支很多,不要搞混了,所以赶紧跟着尚硅谷复习一遍git
- 本课程是尚硅谷在2023年发布的新版的git课程尚硅谷新版Git快速入门(3h迅速掌握git)_哔哩哔哩_bilibili,之前我也做过老版本git的笔记Git工具入门-CSDN博客
基础概念
前言
- 软件配置管理(SCM)是指通过执行版本控制、变更控制的规程,以及使用合适的配置管理软件来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护
版本
- 软件版本
- JDK : 1.8, 17, 20
- MYSQL : 5.7,8.0
- IDEA : 2022,2023
- 文件版本
- 保存重要的历史记录
- 恢复数据
版本控制软件的基础功能
- 保存和管理文件【管理体现在版本号自动生成】
.
- 提供客户端工具进行访问
.
- 提供不同版本文件的比对功能
.
集中式版本控制
.
- 文件冲突问题:多人对同一文件的修改可能会被覆盖
.
-
vss解决文件冲突: 对文件加锁,当有人修改时,其它人对该文件只读不可写,当持锁用户上传时才解锁
-
cvs,svn解决方式:对文件的每一行进行比对操作,约定好每一行由谁完成,如果是对同一行进行操作就还是会冲突
分布式版本控制
- 集中式版本控制中,如果中央服务器宕机了,就无法进行多人协作
- 分布式版本控制
- 就是在本地搭建一个和中央服务器一模一样的库,客户端访问的其实是本地仓库
- 将中央服务器的内容下载到本地仓库的操作叫做克隆clone
- 缺点一方面在本地要占用资源,另一方面由于网络原因会导致同步速度较慢
.
git客户端
本地仓库创建
==》
- 其中勾选了README就会生成提示文档
文件操作
- 不管什么文件操作,文件比对之后都是进行提交操作,每次提交会产生一个新的版本号
- 版本号
:由40个16进制的数字组成的版本号,又称为提交码,可以根据版本号找到文件位置
-
在仓库路径下新增一个文件
.
-
提交到主分支
-
在仓库路径下修改该文件
.
-
提交到主分支
.
-
测试删除
.
分支原理
.
- 每个分支实际上是操作文件的副本,最后所有分支修改完需要合并分支,只需要处理一次文件冲突
分支操作
- 主分支名称可以在options中的git选项进行修改,或者右键主分支进行重命名
- 创建新分支
- 在user分支下创建文件,并且把当前文件提交到当前分支
-
切换order分支时,testUser文件不见了,在当前分支下创建文件并提交
-
选择order和user分支进行合并
- 演示文件冲突:两个分支都创建common文件,并填写不同内容,然后合并到主分支
-
人工解决冲突
-
合并操作是没有描述信息的,可以给相应操作添加tag来解释
远程仓库
- 创建仓库
.
- 点击branch可以创建新分支
- 切换分支
.
-
删除仓库,点击settings然后滑倒最底下
==》
-
客户端绑定github
.
-
将远程仓库clone到本地
- 将本地仓库的提交推送到远程仓库
.
.
其他知识
- README:一些描述信息
- git比对功能只针对文本文件
- .gitignore:指定哪些文件忽略比对且不用上传
.
- 文件图标和比对功能:以下
-
表示旧文件从第几行开始发送变化,+
表示新文件从第几行开始发送变化
版本号
介绍
- 可以在合并时避免版本冲突,还可以定位仓库中的文件,由2(文件夹)+38(文件名)位组成
文件操作
git cat-file -p 版本号
:在本地仓库路径中输入该命令,可以根据版本号查看文件- git在一次提交会产生多个版本号,这些版本分别指向提交信息、文件状态和文件内容
- parent表示上一次提交的版本号 ,增删改的文件状态都指向文件创建的内容
.
分支操作
.
- head表示引用,文件中指向了当前的分支,不同分支可能指向不同的文件版本
!!!命令
.
仓库操作
git --version
:查看git版本
.
-
本地创建仓库:在当前文件目录中打开git窗口,
git init
初始化仓库.
-
远程克隆仓库到本地:
git clone 远程仓库连接 [重命名]
-
单个仓库添加配置:
git config 配置项
,也可以对配置文件进行修改
- 添加全局配置:
git config --global 配置项
,对应C盘用户目录下的gitconfig文件
.
文件操作
git status
:查看文件暂存区的状态
.
-
git add 文件名
:将文件放入暂存区进行比对,文件名支持通配符【不加入暂存区的文件默认为未追踪状态】.
-
git rm --cached 文件名
:将文件逻辑移动到存储区 -
git commit -m 描述消息
:提交到本地仓库.
-
git log [指定版本]
:打印所有/[指定]版本提交日志,加上--oneline
参数可以只显示一行主要信息.
误删除
git reset --hard 某个版本
:回滚到某个版本,但是会丢失中间的提交过程git revert 某个版本
:还原到指定版本的上一个版本
分支操作
-
git branch user
:创建新分支(git分支是基于提交产生的,所以创建分支之前要保证有一次提交) -
git branch -v
:查看所有分支 -
git checkout 分支名
:切换分支 -
git checkout -b order
:创建分支并且切换过去 -
git branch -d 分支名
:删除分支
分支的合并处理
-
git merge 目标分支
:将目标分支合并到当前分支 -
文件冲突
-
此时主分支为合并状态,需要人工比对冲突文件
-
人工干预完之后提交冲突文件,合并状态消失
.
-
标签
-
git tag
:查看所有标签 -
git tag 标签名 版本号
:给指定版本号起别名
.
git tag -d 标签名
:删除标签- ps:标签也可以给分支起别名
远程仓库
git remote add origin 远程仓库地址
:添加远程仓库git push origin
:将本地仓库信息推送到远程仓库- 如果远程仓库是ssh的方式,就需要进行安全设置
ssh-keygen -t rsa -C远程仓库地址
,获取到安全公钥然后去托管平台进行配置