Git面经

news2024/11/26 22:21:30

Git八股文

第一章 git基础

1.1 什么是git

git是一款免费的开源的分布式版本控制系统

1.2 为什么要使用git

为了保留之前的所有版本,方便回滚或修改

1.3 集中化版本控制系统和分布式版本控制系统的区别

  • 集中化版本控制系统如svn,客户端连接到中央服务器取出最新的文件或者提交更新。所以有个很明显的缺点就是如果中央服务器发生故障,故障期间谁都无法提交更新
  • 分布式版本控制系统如git,客户端不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来,这样即使中央仓库发生故障,我们可以先提交到本地仓库,等故障恢复后再提交到中央仓库

第二章 git常用命令

2.1 常用命令

  • 初始化为可以管理的仓库
git init.
  • 将工作区文件添加到暂存区(只需要添加修改过的文件)
git add 文件名
  • 将暂存区文件提交到本地仓库
git commit -m "备注"

在此之前,一般还要设置作者邮箱和姓名,例如

git config --global user.email "邮箱名"
git config --global user.name "姓名"
  • 查看工作区状态(用于显示暂存区和本地仓库的状态)
git status
  • 查看当前分区的提交log
git log

2.2 分支命令

  • 查看当前分支
git branch
  • 创建分支(但不会切换到新分支)
git branch 分支名
  • 切换分支(只能切换已有的分支)
git checkout 分支名
  • 创建并切换分支
git checkout -b 分支名
  • 删除分支
git branch -d 分支名
  • 合并分支(当前工作分支的内容会由于merge操作产生更新,但是目标分支(要合并的分支名)则完全不受影响),merge操作可能会出现冲突
git merge 要合并的分支名
git rebase 要合并的分支名

2.3 远程仓库命令

  • 远程仓库克隆到本地(在没有本地仓库的时候,从远程仓库克隆到本地,是一个从无到有的过程)
git clone 地址
  • 下拉代码(在本地有本地仓库的时候,从远程仓库获得最新的commit数据,并merge到工作区,一般在push前会pull)
// 远程仓库名称默认为origin,分支名称默认为与当前本地分支同名。
git pull [remote name] [branch name]
// 等价于
git fetch + git merge
  • 推送代码(将本地仓库中的文件推送到远程仓库)
git push [remote name] [branch name]

2.4 关系图

在这里插入图片描述

第三章 其他面试题

3.1 git pull和git fetch的区别

  • git fetch只是将远程仓库的最新版本下载到本地仓库,但是不会自动merge,工作区的文件没有更新
  • git pull会从远程仓库获取到的最新版本并merge到工作区
  • git pull = git fetch + git merge

3.2 git clone和git pull的区别

  • git clone用在没有本地仓库的时候,从远程仓库克隆到本地,是一个从无到有的过程
  • git pull可以只更新某一分支,用在有本地仓库的时候,从远程仓库获得分支最新的commit数据,并merge到工作区,一般在push前会pull。

3.3 git merge和git rebase的区别

参考:https://blog.csdn.net/qq_41035588/article/details/121354279

  • git merge 操作合并分支会让两个分支的共同提交点之后每一次提交都按照提交时间排序,并且会将两个分支的最新一次commit点合并成一个新的commit,最终的分支树呈现非整条直线的形式
  • git rebase操作实际上是将当前执行rebase分支的所有基于原分支提交点之后的commit打散成一个一个的patch,并重新生成一个新的commit hash值,再次基于原分支目前最新的commit点上进行提交,最终的分支树呈现一条直线的形式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1219168.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RedHat公司及红帽认证介绍丨红帽认证等级介绍

RedHat公司及红帽认证介绍 红帽公司成立工1993年,是全球首家收入超10亿美元的开源公司,总部位于美国,分支机构遍布全球。红帽公司作头全球领先的开源和Linux系统提供商,其产品已被业界广泛认可并使用,尤其是RHEL系统在…

AD教程 (十七)3D模型的创建和导入

AD教程 (十七)3D模型的创建和导入 对于设计者来讲,现在3DPCB比较流行,3DPCB,除了美观之外,做3D的最终的一个目的,是为了去核对结构,就是我们去做了这么一个PCB之后,如果说…

033、微调

之——高级炼丹术 目录 之——高级炼丹术 杂谈 正文 1.标注数据集是很贵的 2.微调的思想 3.尝试 小结 杂谈 微调(Fine-tuning)是深度学习中的一种常见策略,它通常用于预训练模型在特定任务上的性能提升。微调的过程涉及在一个已经在大…

构建自定义ChatGPT,微软推出Copilot Studio

11月16日,微软在美国西雅图举办“Microsoft Ignite 2023”全球开发者大会。本次人工智能成为重要主题,微软几乎把所有产品都集成了生成式AI功能并发布了一系列全新产品。 其中,微软重磅推出了Copilot Studio(预览版)&…

001.前置知识

1、硬件 我们知道,组成计算机的硬件主要有“主机”和“输入/输出设备”。 主机包括机箱、电源、主板、CPU(Central Processing Unit,中央处理器)、内存、显卡、声卡、网卡、 硬盘、光驱等。输入/输出设备包括显示器、键盘、鼠标…

五分钟,Docker安装kafka 3.5,kafka-map图形化管理工具

首先确保已经安装docker,如果是windows安装docker,可参考 wsl2安装docker 1、安装zk docker run -d --restartalways -e ALLOW_ANONYMOUS_LOGINyes --log-driver json-file --log-opt max-size100m --log-opt max-file2 --name zookeeper -p 2181:218…

ssm+vue的OA办公系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的OA办公系统(有报告)。Javaee项目,ssm vue前后端分离项目。 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 项目介绍&a…

中心极限定理

中心极限定理是统计学中的一个基本定理,它描述了在满足一定条件的情况下,独立随机变量的均值的分布会在样本容量足够大时趋近于正态分布。中心极限定理为许多统计推断方法的合理性提供了理论基础。 中心极限定理有两种常见的表述:独立同分布…

数据库逗号分割数据查询

遇到一个A表某个字段是B表某个字段拼接而成的。 A一对多B表 即表A某个字段存了B表多个单号或者多个ID,一开始想的是要处理数据想办法分割字符串出来然后关联,百度了下没找到,但是看到PostgreSql数据库可以实现 然后尝试了下 发现可以 第一…

学习指南:如何快速上手媒体生态一致体验开发

过去开发者们在使用多媒体能力时,往往会遇到这样的问题,比如:为什么我开发的相机不如系统相机的效果好?为什么我的应用和其他的音乐一起发声了,我要怎么处理?以及我应该怎么做才能在系统的播控中心里可以看…

中文撰稿好用软件推荐TexPage(似于Overleaf)

由于本人用惯了overleaf所以找到了一个与他功相似的也同样是利用tex写文章。唯一的区别可能也就是overleaf只支持英文,而TexPage中英文都支持。关键是不花钱,好用好用好用,用起来! 平台网址:https://www.texpage.com/…

C/C++算法-----------------------双指针详解技巧及例题

双指针 基本介绍降低时间复杂度降低时间复杂度例题 验证回文串判断是否为环反转链表总结 基本介绍 双指针(two poinnters)实际上是一种算法编程里的一种思想,它更像是一种编程思想,提供看非常高的算法效率,一般来说双…

Android——gradle插件配置方式——dependencies和plugins

引言 我们知道Android studio 需要gradle插件进行构建和编译,随着AGP的升级,引入gradle插件也发生了变化。旧版本通过build.gradle文件中dependencies代码块引入,新版本通过plugins代码块引入 一、旧版本引入方式dependencies 二、新版本引入…

解决java在idea运行正常,但是打成jar包后中文乱码问题

目录 比如: 打包命令使用utf-8编码: 1.当在idea中编写的程序,运行一切正常.但是当被打成jar包时,执行的程序会中文乱码.产生问题的原因和解决方案是什么呢? 一.问题分析 分别使用idea和jar包形式打印出System中所有的jvm参数---代码如下: public static…

一文揭秘共享wifi二维码项目推广技巧!

随着无线网络的普及和移动互联网的快速发展,共享WiFi已成为人们生活中不可或缺的一部分。共享WiFi二维码项目作为一个独具创意的共享项目,将二维码推广与共享WiFi相结合,不仅可以提升品牌曝光度,还能为用户提供便捷的上网体验。那…

windows10通过L2TP VPN隧道连接到企业内网

L2TP协议通过为数据包创建一个虚拟通道,将数据从一个网络传输到另一个网络,而不用担心数据在途中被窃取或篡改。它创建一个点对点的隧道,通过封装PPP(Point-to-Point Protocol)数据包在其内部进行传输,极大…

JSON 格式的接口测试流程【Eolink Apikit】

在进行JSON格式的接口测试时,需要使用工具发送HTTP请求并获取响应。测试工具可以是单独的测试框架,如 Eolink Apikit。测试人员需要根据接口文档和测试用例编写测试脚本,然后运行测试并分析结果,以确保接口的质量和稳定性。 当我…

探索企业主要人员API在金融领域的应用

前言 随着金融科技的不断发展,企业主要人员API在金融领域的应用日益重要。本文将探讨这个话题,并介绍一些关键的应用案例。 企业主要人员API在金融领域的应用 企业人员信息API在金融行业有许多应用。其中一个应用是风险评估。金融机构可以使用API获取…

用requests库下载文件时的挂起问题:一步步诊断与解决方案

在使用 requests 库下载一个大小为125KB的文件时,用户遇到了一个问题,下载进程在代码的特定行挂起了。用户已经检查了操作系统的内存,发现大约有2GB的空闲内存可用。用户正在使用 requests 库的2、28、1版本,并寻求帮助来调试这个…