Git面经

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.hqwc.cn/news/186098.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(C语言)输入一个序列,判断是否为奇偶交叉数

#include <stdio.h> #include <string.h> int main() {char str[50];gets(str);int len,tmp 1;len strlen(str); //获取字符串长度 for (int i 0;i < len-1 ;i ){if((str[i] % 2 0 ) && (str[i1] % 2 ! 0)) //判断先偶数后奇数序列 tmp ;else if((s…

Pandas 将DataFrame中单元格内的字典dict拆分成单独的列

核心是应用 pd.Series&#xff0c; 具体操作如下&#xff1a; import pandas as pddata {years: [2025],week: [{f"week_{i}": i for i in range(3)}]} df pd.DataFrame(data) print(df)df pd.concat([df, df[week].apply(pd.Series)], axis1).drop(week, axis1)…

Draft-P802.11be-D3.2协议学习__$36-EHT-PHY__$36.5-Parameters-for-EHT-MCSs

Draft-P802.11be-D3.2协议学习__$36-EHT-PHY__$36.5-Parameters-for-EHT-MCSs 36.3.5 EHT DUP transmission36.3.8 EHT modulation and coding schemes (EHT-MCSs)36.3.9 EHT-SIG modulation and coding schemes (EHT-SIG-MCSs)36.5 Parameters for EHT-MCSs36.5.1 EHT-MCSs fo…

LoRa模块空中唤醒功能原理和物联网应用

LoRa模块是一种广泛应用于物联网领域的无线通信模块&#xff0c;支持低功耗、远距离和低成本的无线通信。 其空中唤醒功能是一项重要的应用&#xff0c;可以实现设备的自动唤醒&#xff0c;从而在没有人工干预的情况下实现设备的远程监控和控制。 LoRa模块空中唤醒功能的原理…

c++学习之红黑树

目录 一.什么是红黑树 二.红黑树的性质 三.红黑树的实现 节点定义&#xff1a; 1.insert 情况一: cur为红&#xff0c;p为红&#xff0c;g为黑&#xff0c;u存在且为红 情况二: cur为红&#xff0c;p为红&#xff0c;g为黑&#xff0c;u不存在/u存在且为黑 情况三: cur…

V10服务器安装virt-manage

kvm是什么 KVM(Kernel-based Virtual Machine, 即内核级虚拟机) 是一个开源的系统虚拟化模块。它使用Linux自身的调度器进行管理&#xff0c;所以相对于Xen&#xff0c;其核心源码很少。目前KVM已成为学术界的主流VMM之一&#xff0c;它包含一个为处理器提供底层虚拟化 可加载…

企业图纸混乱怎么办?

企业图纸混乱怎么办&#xff1f; 随着企业办公自动化的迅速发展&#xff0c;各种技术资料和电子文件日益庞大&#xff0c;图文档管理工作出现新的变化和考验。 在传统的管理模式下&#xff0c;企业的图纸文档分散在各个部门的个人电脑上&#xff0c;致使企业在进行图文档管理的…

Android开发:(AndroidStudio模拟器)如何将模拟器语言设置为中文 模拟器输入法更改为中文输入 键盘输入中文

文章目录 Android开发模拟器设置将模拟器语言设置为中文输入法中文的设置 Android开发模拟器设置 将模拟器语言设置为中文 第一步&#xff1a;打开模拟器后&#xff0c;上滑打开下面的设置图标。 第二步&#xff1a;找到 System (系统) &#xff0c;点击进入。 第三步&am…

nginx反向代理配置

1.1 安装nginx 本节以安装“nginx-1.7.9”为例讲解nginx的安装方法&#xff0c;请确认已获取了“nginx-1.7.9.tar.gz”包。 步骤 1 以root用户登录服务器。 步骤 2 通过SSH或XFTP等工具将nginx安装包“nginx-1.7.9.tar.gz”上传到Linux服务器的“/tmp”目录下。 步骤 3 进入…

MATLAB 模糊设计器 构建 模糊系统

系列文章目录 文章目录 系列文章目录前言一、创建 FIS 结构二、定义输入变量三、定义输出变量四、定义成员函数五、定义规则库六、设计分析七、存储和修改设计八、导出 FIS总结 前言 本例演示如何使用 Fuzzy Logic Designer 应用程序交互式创建 1 型 Mamdani 模糊推理系统&…

(免费)双相情感障碍筛查MDQ 在线测试双向情感障碍

MDQ用于筛查双相障碍&#xff0c;主要包含13个关于双相障碍症状的是非问题&#xff0c;当前测试采用的量表为2010年杨海晨博士翻译版。该量表为目前世界范围内最常用的双相障碍筛查量表&#xff0c;目前在精神科门诊最为常用的量表之一。 双向情感障碍筛查量表&#xff0c;也叫…

JVM虚拟机:垃圾回收器ZGC和Shenandoah算法

随着计算机技术的不断发展,内存管理成为了一个重要的话题。垃圾回收是一种自动内存管理技术,它可以自动地回收不再使用的内存,从而减少内存泄漏和程序崩溃的风险。在Java等高级编程语言中,垃圾回收器是必不可少的组件。近年来,ZGC和Shenandoah算法作为新一代的垃圾回收器,…