当前位置: 首页 > news >正文

Git回顾

参考视频:【GeekHour】一小时Git教程

一句话定义:Git是一个免费开源的分布式版本控制系统。

版本控制系统可以分为两种,1.集中式(SVN,CVS);2.分布式(git)

git的工作区域和文件状态

git的工作区域
在这里插入图片描述
git中文件也存在下面几种状态在这里插入图片描述

添加和提交文件

git reset

默认是mixed。这三种模式实际上就是回退程度的区别。下图可以解释区别,其中工作区是本地实际的文件,暂存区是git add后的区域。
在这里插入图片描述

当然,如果误操作了git reset也没关系,可以使用git reflog查看修改记录,然后再使用git reset回退。

在这里插入图片描述

git loggit reflog的区别

项目git loggit reflog
作用查看分支上的提交历史查看 HEAD 或分支引用的变动历史
内容显示当前分支的提交(commit)记录显示 HEAD 或分支引用的所有变动(如 reset、rebase、commit)
记录范围只包含分支上可达的 commit包括被丢弃、回滚、rebase 覆盖的 commit
保留时间只要 commit 没有被垃圾回收就会一直在默认保留 90 天(可配置),之后会被 Git 回收
常用场景查看项目历史、提交说明误操作恢复(如找回 reset 丢失的提交)
可见性用户面向,逻辑提交历史Git 内部记录,供恢复使用
示例命令git log --onelinegit reflog

git diff

比较工作区和暂存区之间的差异
在这里插入图片描述
进行git add后,上面就无区别了。

比较工作区和版本库之间的差异
git diff HEAD(对比当前工作区的文件和最新一次提交(HEAD)之间的差异)
在这里插入图片描述

比较暂存区和版本库之间的差异 : git diff --cached

比较两个不同版本库之间的差异
在这里插入图片描述

HEAD~n表示前n个版本
在这里插入图片描述

在这里插入图片描述

git rm删除文件

如果不用git rm,那正常的操作流程是,先rm删掉文件,然后git add同步到暂存区。
上面流程可以用git rm,即同时删除工作区和暂存区的文件。在这里插入图片描述

gitignore

匹配规则例子:

在这里插入图片描述
在这里插入图片描述

SSH配置和远程仓库

SSH与HTTPS之辨析与实践
在这里插入图片描述
在这里插入图片描述

关联本地仓库和远程仓库

git push -u 中的 -u --set-upstream的简写,作用是:

把当前分支和远程分支绑定,以后你只需输入 git push git pull就行,不用每次指定远程和分支名。

当然,下面中远程仓库需要新建,然后就可以通过下面步骤把本地代码同步到远程仓库了。
在这里插入图片描述
比如:我想要把hhh分支上的推送到远程的main,git push origin hhh:main

分支以及合并冲突

分支合并:mergerebase

merge
你在哪个分支执行 git merge,就是把“别的分支”合并到“你当前所在的分支”上。
比如下面,在main分支上使用merge dev,就把dev合并到当前的main上,此时会有产生一个新的提交(如下面的“merge")。
在这里插入图片描述
rebase
把当前分支的提交“挪到”目标分支的最末尾,重新“重放”一遍,形成一条线性的提交历史。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

git pull 和 git fetch

git fetch 把远程仓库的更新拉到本地,但不影响你当前的代码(不合并、不修改工作区)。

命令拉代码自动合并修改工作区
git fetch❌(不影响当前分支)
git pull✅(直接合并)

git fetch 安全、可控,适合先看看有没有冲突再决定怎么合并。

git pull 是 fetch + merge 的快捷方式,一键拉并合并。

http://www.xdnf.cn/news/361909.html

相关文章:

  • 服务器不备案有影响吗
  • 依赖关系-根据依赖关系求候选码
  • 智慧校园安全可视化指挥调度系统解决方案
  • 【源码+论文】基于Vue3的企业后台管理系统设计与实现
  • Excel提取单元格特定符号左右两边内容
  • 损失函数(平方损失MSE、绝对值损失MAE、负对数似然损失NLL、交叉熵损失CEL和二元交叉熵损失BCE)原理、公式调库实现与手动实现
  • ISP流程介绍(Raw格式阶段)
  • 模板引用、组件基础
  • 打破虚拟与现实边界,赵伟辰Holo HK项目引领全球用户体验设计革新
  • 跟我学C++中级篇——STL容器的查找对比
  • [AI Tools] Dify 工具插件上传指南:如何将插件发布到官方市场
  • 软件测试的概念
  • 使用Kotlin Flow实现Android应用的响应式编程
  • MTB图像配准算法实现
  • Swagger 3.0 中注解详细示例
  • Linux云计算训练营笔记day05(Rocky Linux中的命令:管道操作 |、wc、find、vim)
  • linux mcelog inject注入
  • 21.第二阶段x64游戏实战-分析采集物偏移
  • C语言printf使用错误导致程序崩溃
  • 39-算法打卡-二叉树-基础知识-第三十九天
  • C#里创建一个MaterialDesign3的导航条
  • uni-app使用web-view组件APP实现返回上一页
  • 机器人手臂的坐标变换:一步步计算齐次矩阵过程 [特殊字符]
  • 商业 |阿里云又丢出了核弹
  • Webug4.0靶场通关笔记24- 第29关Webshell爆破
  • 华为OceanStor 5500 V3存储证书过期问题处理
  • 在SpringBoot中使用MQTT实现消息的订阅
  • Element-UI字体图标不显示
  • Oracle — 数据管理
  • LVGL源码学习之渲染、更新过程(2)---无效区域的处理