【前端高频面试题--git篇】

🚀 作者 :“码上有前”
🚀 文章简介 :前端高频面试题
🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬
在这里插入图片描述

前端高频面试题--git篇

  • 往期精彩内容
  • 常用命令
  • git add 和 git stage 有什么区别
  • 怎么使用git连接到远程仓库github/gitlab/gitee等
  • 开发过程中使用git进行工作,需要哪些步骤,使用到了哪些命令?
  • git reset、git revert 和 git checkout 有什么区别
  • GitFlow 基本流程和你的理解
  • 解释下 PR 和 MR 的区别
  • git merge 和git rebase的区别?

往期精彩内容

【前端高频面试题–HTML篇】
【前端高频面试题–CSS上篇】
【前端高频面试题–CSS下篇】
【前端高频面试题–JS上篇】
【前端高频面试题–JS下篇】
【前端高频面试题–ES6篇】
【前端高频面试题–ES7-ES11】
【前端–异步编程】
【前端高频面试题–TypeScript篇】

【前端高频面试题–git篇】
【前端高频面试题–微信小程序篇】

【前端高频面试题–Vue基础篇】
【前端高频面试题–虚拟DOM篇】
【前端高频面试题–Vue3.0篇】
【前端高频面试题–Vuex上篇】
【前端高频面试题–Vuex下篇】
【前端高频面试题–Vue生命周期篇】
【前端高频面试题–Vue组件通信篇】
【前端高频面试题–Vue路由篇】

【前端-Vue3创建一个新项目】
【前端大屏自适应缩放】
【前端Vue3 + TS项目开发一般流程】

常用命令

以下是一些常用的 Git 命令:

  1. 创建和克隆仓库:

    • git init: 在当前目录下创建一个新的 Git 仓库。
    • git clone <仓库地址>: 克隆一个远程仓库到本地。
  2. 基本操作:

    • git add <文件>: 将文件添加到暂存区。
    • git commit -m "<提交信息>": 将暂存区的更改提交到本地仓库。
    • git push <远程仓库> <分支>: 将本地分支的提交推送到远程仓库。
    • git pull <远程仓库> <分支>: 从远程仓库拉取最新的提交到本地分支。
    • git status: 查看当前仓库的状态。
    • git log: 查看提交历史记录。
  3. 分支操作:

    • git branch: 查看当前仓库的分支列表。
    • git branch <分支名>: 创建一个新的分支。
    • git checkout <分支名>: 切换到指定的分支。
    • git merge <分支名>: 将指定分支的更改合并到当前分支。
    • git branch -d <分支名>: 删除指定的分支。
  4. 远程仓库操作:

    • git remote: 查看当前仓库配置的远程仓库。
    • git remote -v: 查看当前仓库配置的远程仓库的详细信息。
    • git remote add <远程仓库名> <远程仓库地址>: 添加一个新的远程仓库。
    • git remote remove <远程仓库名>: 移除指定的远程仓库。
  5. 撤销和回滚:

    • `git reset <提交>: 将 HEAD 指针和当前分支的引用重置到指定提交。
    • git revert <提交>: 创建一个新的提交来撤销指定提交的更改。
    • git checkout -- <文件>: 恢复指定文件到最近的提交状态。

这只是一小部分 Git 命令的示例。Git 命令非常丰富,可以根据实际需求和工作流程选择适合的命令来完成任务。

git add 和 git stage 有什么区别

在 Git 中,git addgit stage 实际上是同一个命令的两种形式,它们用于将文件添加到暂存区(也称为索引或缓存区),以准备进行提交。

git add 是 Git 的原始命令,用于将工作目录中的文件添加到暂存区。例如,要将名为 file.txt 的文件添加到暂存区,可以运行以下命令:

git add file.txt

此命令将 file.txt 文件的当前状态添加到暂存区,以便在下一次提交时包含该文件的更改。

git stagegit add 的一个别名,它们的功能完全相同。git stage 是一些 Git 命令行工具和 Git 用户界面工具提供的更友好和直观的别名。这样的别名可以使命令更易于记忆和使用。

因此,无论是使用 git add 还是 git stage,都是将文件添加到暂存区的操作。它们可以用来跟踪文件的更改,并将这些更改准备好以进行下一次提交。

怎么使用git连接到远程仓库github/gitlab/gitee等

要将本地 Git 仓库连接到远程仓库(如 GitHub、GitLab 或 Gitee),可以按照以下步骤进行操作:

  1. 创建远程仓库:在相应的代码托管平台(如 GitHub、GitLab 或 Gitee)上创建一个新的空白仓库。获取远程仓库的 URL,这将用于将本地仓库与远程仓库进行关联。

  2. 在本地仓库中添加远程仓库:打开命令行终端或 Git 客户端,并导航到本地仓库的根目录。运行以下命令来添加远程仓库:

    git remote add origin <远程仓库的 URL>
    

    这里,origin 是远程仓库的别名,你可以自定义别名。<远程仓库的 URL> 是远程仓库的 URL 地址。

  3. 验证远程仓库连接:运行以下命令来验证远程仓库是否成功连接:

    git remote -v
    

    这将显示你的远程仓库的别名和 URL,以确保连接正确。

  4. 将本地更改推送到远程仓库:如果你想将本地仓库中的更改推送到远程仓库,可以使用以下命令:

    git push -u origin <分支名>
    

    这将把当前分支的更改推送到远程仓库,并将其与远程仓库的对应分支进行关联。 -u 参数在首次推送时建立了本地分支与远程分支的关联。之后,你可以简单地使用 git push 命令来推送更改。

以上是一般的连接到远程仓库的步骤。具体的命令和操作可能会因使用的代码托管平台和个人设置而有所不同。在使用之前,建议查阅相关平台的文档和指南,以了解特定平台的详细步骤和要求。

开发过程中使用git进行工作,需要哪些步骤,使用到了哪些命令?

在开发过程中使用 Git 进行工作,通常涉及以下几个步骤和常用命令:

  1. 克隆仓库:在开始工作之前,你可以使用 git clone 命令将远程仓库克隆到本地:

    git clone <远程仓库的 URL>
    

    这将在当前目录下创建一个与远程仓库相同的本地仓库副本。

  2. 创建和切换分支:对于新功能的开发或 bug 修复,你可以创建一个新的分支。使用 git branch 命令创建分支,然后使用 git checkout 命令切换到该分支:

    git branch <分支名>
    git checkout <分支名>
    

    或者使用 git checkout -b 命令同时创建并切换到新分支:

    git checkout -b <分支名>
    
  3. 开发和提交更改:在所选分支上进行代码修改和开发。使用 git add 命令将更改的文件添加到暂存区,然后使用 git commit 命令提交更改:

    git add <文件名>
    git commit -m "提交信息"
    

    这将把文件的更改从工作目录添加到暂存区,并创建一个新的提交记录。

  4. 推送更改:当你准备好将本地分支的更改推送到远程仓库时,可以使用 git push 命令:

    git push origin <分支名>
    

    这将把本地分支的更改推送到远程仓库的对应分支。

  5. 合并分支:在完成功能或修复 bug 后,你可能需要将所做的更改合并回主分支。可以使用 git merge 命令将一个分支的更改合并到当前分支:

    git merge <分支名>
    

    这将把指定分支的更改合并到当前分支。

  6. 解决冲突:如果在合并分支时遇到冲突,需要手动解决冲突。打开冲突文件,在文件中标记和编辑冲突的部分,然后使用 git add 命令将解决的文件标记为已解决,最后使用 git commit 命令进行提交。

这些是使用 Git 进行工作时的一些常见步骤和命令。除了上述命令外,还有其他许多命令可用于处理分支、查看提交历史、撤销更改等。详细的 Git 命令和操作可以在 Git 的官方文档或其他教程中找到。

git reset、git revert 和 git checkout 有什么区别

git resetgit revertgit checkout 是 Git 中用于处理提交和分支的三个不同命令,它们有以下区别:

  1. git reset: git reset 用于将当前分支的 HEAD 指针和分支引用重置到指定的提交,并可以选择性地更改暂存区和工作目录的状态。主要有三种模式:

    • git reset --soft:仅重置分支引用和 HEAD 指针,不修改暂存区和工作目录。这意味着当前更改仍然在暂存区中,并且可以重新提交。
    • git reset --mixed(默认模式):重置分支引用和 HEAD 指针,并重置暂存区以匹配指定提交。这将取消暂存区中的更改,但保留更改的文件内容,以便可以重新暂存或修改后重新提交。
    • git reset --hard:将分支引用、HEAD 指针和暂存区都重置到指定提交。这将完全丢弃暂存区和工作目录中的更改,慎用,可能会导致永久性数据丢失。
  2. git revert: git revert 用于创建一个新的提交来撤销指定提交的更改。它会在撤销提交时保留提交历史,因此适合在共享仓库中撤销公共历史的更改。git revert 将创建一个新的提交,该提交的更改是指定提交的相反操作。这意味着它不会直接修改原始提交,而是创建一个新的提交来撤销之前的更改。

  3. git checkout: git checkout 用于切换分支、恢复文件状态或创建新分支。它的功能有以下几个方面:

    • 切换分支:使用 git checkout <分支名> 可以切换到指定的分支。
    • 恢复文件状态:使用 git checkout -- <文件名> 可以撤销对指定文件的更改,将其恢复为最近的提交状态。
    • 创建新分支:使用 git checkout -b <新分支名> 可以创建并切换到一个新的分支。

总结一下,git reset 用于重置分支引用和 HEAD 指针,可以修改暂存区和工作目录状态;git revert 用于创建一个新的提交来撤销指定提交的更改,保留提交历史;git checkout 用于切换分支、恢复文件状态或创建新分支。

GitFlow 基本流程和你的理解

GitFlow 是一种流行的 Git 分支管理工作流,它定义了一套用于协作开发的分支模型和规范。下面是 GitFlow 的基本流程和我的理解:

  1. 主要分支:

    • master 分支:代表生产环境的稳定代码。只包含已经发布的正式版本的代码。
    • develop 分支:代表下一个发布版本的开发代码。新功能和 bug 修复通常从这个分支开始。
  2. 辅助分支:

    • 功能分支(Feature branches):用于开发新功能。从 develop 分支派生,完成后合并回 develop 分支。
    • 发布分支(Release branches):用于准备发布版本。从 develop 分支派生,包含最终要发布的代码和准备发布的工作(如版本号更新、构建等)。完成后合并回 develop 分支和 master 分支,并打上发布版本的标签。
    • 热修复分支(Hotfix branches):用于紧急修复生产环境中的 bug。从 master 分支派生,完成后合并回 develop 分支和 master 分支,并打上修复版本的标签。
  3. 工作流程:

    • 开发新功能:从 develop 分支创建一个新的功能分支,进行功能开发和测试。完成后将功能分支合并回 develop 分支。
    • 准备发布版本:从 develop 分支创建一个新的发布分支,进行版本准备和测试。包括修复 bug、更新版本号等。完成后将发布分支合并回 develop 分支和 master 分支,并打上发布版本的标签。
    • 修复生产环境中的 bug:从 master 分支创建一个新的热修复分支,进行紧急 bug 修复。完成后将热修复分支合并回 develop 分支和 master 分支,并打上修复版本的标签。

GitFlow 的优势在于将开发、发布和修复过程分离,并提供了清晰的分支结构和规范,使团队能够进行并行开发和持续交付。它也有助于保持不同环境之间的代码同步,并为版本控制提供可追溯性。

然而,GitFlow 也可能导致分支较多和复杂的合并操作。在团队规模较小或项目较简单的情况下,可以根据实际需求选择更简化的分支管理方式。

解释下 PR 和 MR 的区别

PR(Pull Request)和 MR(Merge Request)是代码托管平台(如GitHub和GitLab)上用于代码审查和合并的术语,它们有以下区别:

  1. PR(Pull Request):PR 是 GitHub 上的术语,表示从一个分支(通常是开发分支)请求将代码合并到目标分支(通常是主分支)中。PR 允许团队成员对代码进行讨论、审查和提供修改建议。创建 PR 后,其他开发者可以查看代码更改、提交评论、提出问题或请求更改,这有助于团队合作和代码质量的提高。

  2. MR(Merge Request):MR 是 GitLab 上的术语,与 PR 的概念相似。它也是请求将代码从一个分支合并到另一个分支中,通常是从开发分支合并到主分支。MR 具有类似的功能,包括团队成员的审查、讨论和交流。使用 MR,团队可以共同审查和验证代码,确保它符合质量标准,并且可以顺利合并到目标分支中。

虽然 PR 和 MR 在术语上有所不同,但它们的目标和功能基本相同:促进团队成员之间的代码审查和合作。无论是在 GitHub 还是 GitLab,PR 和 MR 都提供了一种结构化和协作的方式,使团队能够审查、讨论和决定是否接受某个代码更改。

git merge 和git rebase的区别?

git mergegit rebase 是用于将一个分支的更改合并到另一个分支的 Git 命令,它们有以下区别:

  1. 历史记录的整洁性:

    • git merge:将源分支的更改合并到目标分支,并创建一个新的合并提交。这会在目标分支的历史记录中保留源分支的完整提交历史,形成一个合并的提交记录。
    • git rebase:将源分支的更改应用到目标分支上,并将目标分支的提交应用在源分支的顶部。这会使提交历史线性化,看起来像是源分支的更改直接在目标分支上进行的。
  2. 分支图的清晰性:

    • git merge:在分支图中创建一个新的合并提交节点,显示源分支和目标分支的合并关系。
    • git rebase:将源分支的提交复制到目标分支的顶部,使分支图保持简单的线性结构,不会有合并提交节点。
  3. 修改历史记录:

    • git merge:不会修改源分支和目标分支的提交历史记录。
    • git rebase:将源分支的提交应用到目标分支上,可以修改源分支的提交历史记录。
  4. 协作和共享:

    • git merge:适用于多人协作和共享代码库,因为合并提交保留了每个分支的完整历史记录。
    • git rebase:更适合个人工作流,可以使提交历史保持线性和整洁。

综上所述,git merge 用于将分支的更改合并到目标分支并创建合并提交,保留完整的提交历史记录。而 git rebase 则是将分支的更改应用到目标分支上,并将目标分支的提交应用在源分支的顶部,使提交历史线性化和整洁。选择使用哪个命令取决于项目的需求、团队的合作方式以及个人偏好。
都看到这啦,嘿嘿,点个赞吧🚀

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

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

相关文章

代码随想录算法训练营DAY18 | 二叉树 (5)

一、LeetCode 513 找树左下角的值 题目链接&#xff1a;513.找树左下角的值https://leetcode.cn/problems/find-bottom-left-tree-value/ 思路一&#xff1a;递归回溯全局变量比深度。 class Solution {int Max_depth 0;int result 0;public int findBottomLeftValue(TreeNo…

“分布式透明化”在杭州银行核心系统上线之思考

导读 随着金融行业数字化转型的需求&#xff0c;银行核心系统的升级改造成为重要议题。杭州银行成功上线以 TiDB 为底层数据库的新一代核心业务系统&#xff0c;该实践采用应用与基础设施解耦、分布式透明化的设计开发理念&#xff0c;推动银行核心系统的整体升级。 本文聚焦…

2024 年 11 款最佳 iPhone 数据恢复软件和应用程序

数据丢失是任何人都无法承受的&#xff0c;因为它对每个人都至关重要。但导致数据丢失的原因有很多&#xff0c;一些常见的原因是意外删除数据、设备被盗、iOS 越狱、硬件损坏、病毒感染等。我们列出了 iOS 的顶级恢复工具&#xff0c;其中包括&#xff1a;将帮助您方便地恢复数…

【AIGC】Stable Diffusion的生成参数入门

Stable Diffusion 的生成参数是用来控制图像生成过程的重要设置&#xff0c;下面是一些常见的生成参数及其详解 1、采样器&#xff0c;关于采样器的选择参照作者的上一篇文章 2、采样步数&#xff08;Sampling Steps&#xff09;是指在生成图像时模型执行的总步数&#xff0c…

一、ActiveMQ介绍

ActiveMQ介绍 一、JMS1.jms介绍2.jms消息传递模式3.JMS编码总体架构 二、消息中间件三、ActiveMQ介绍1.引入的原因1.1 原因1.2 遇到的问题1.3 解决思路 2.定义3.特点3.1 异步处理3.2 应用系统之间解耦3.3 实际-整体架构 4.作用 一、JMS 1.jms介绍 jms是java消息服务接口规范&…

Apache POI | Java操作Excel文件

目录 1、介绍 2、代码示例 2.1、将数据写入Excel文件 2.2、读取Excel文件中的数据 &#x1f343;作者介绍&#xff1a;双非本科大三网络工程专业在读&#xff0c;阿里云专家博主&#xff0c;专注于Java领域学习&#xff0c;擅长web应用开发、数据结构和算法&#xff0c;初步…

基于Python实现Midjourney集成到(个人/公司)平台中

目前Midjourney没有对外开放Api&#xff0c;想体验他们的服务只能在discord中进入他们的频道进行体验或者把他们的机器人拉入自己创建的服务器中&#xff1b;而且现在免费的也用不了了&#xff0c;想使用就得订阅。本教程使用midjourney-api这个开源项目&#xff0c;搭建Midjou…

系统可靠性分析与设计

一、考点分析 可靠性相关基本概念&#xff08;※※&#xff09;系统可靠性分析&#xff08;※※※※&#xff09;软件可靠性设计&#xff08;※※※※&#xff09; 二、可靠性相关基本概念 可靠性&#xff1a;软件系统在应用或系统错误面前&#xff0c;在意外或错误使用的情况下…

搜索Agent方案

为啥需要整体方案&#xff0c;直接调用搜索接口取Top1返回不成嘛&#xff1f;要是果真如此Simple&Naive&#xff0c;New Bing岂不是很容易复刻->.-> 我们先来看个例子&#xff0c;前一阵火爆全网的常温超导技术&#xff0c;如果想回答LK99哪些板块会涨&#xff0c;你…

【初始C++】引用的概念及使用场景、引用与指针的区别、内联函数、类型推导关键字auto、范围for循环、指针空值nullptr

目录 1.引用 1.1引用的概念 1.2引用的特性 1.3使用场景 1.4引用与指针的区别 2.内联函数 2.1内联函数的概念 2.2内联函数的特征 3.auto关键字&#xff08;C11&#xff09; 4.基于范围的for循环&#xff08;C11&#xff09; 5.指针空值nullptr&#xff08;C11&#x…

嵌入式培训机构四个月实训课程笔记(完整版)-Linux ARM驱动编程第四天-ARM Linux编程之IIC与uart (物联技术666)

链接&#xff1a;https://pan.baidu.com/s/1V0E9IHSoLbpiWJsncmFgdA?pwd1688 提取码&#xff1a;1688 教学内容&#xff1a; 1、I2C总线&#xff1a; I2C&#xff08;Inter&#xff0d;Integrated Circuit),PHILIPS公司开发的两线式半双工同步串行总线&#xff1b;可以用来连…

C/C++重点解析——内存管理

1. C/C内存分布 我们先来看一段代码和其相关问题&#xff1a; int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd"…

中科大计网学习记录笔记(十一):CDN

前言&#xff1a; 学习视频&#xff1a;中科大郑烇、杨坚全套《计算机网络&#xff08;自顶向下方法 第7版&#xff0c;James F.Kurose&#xff0c;Keith W.Ross&#xff09;》课程 该视频是B站非常著名的计网学习视频&#xff0c;但相信很多朋友和我一样在听完前面的部分发现信…

【读书笔记】ICS设备及应用攻击(一)

工控系统通常是由互联设备所构成的大型复杂系统&#xff0c;这些设备包括类似于人机界面&#xff08;HMI&#xff09;、PLC、传感器、执行器以及其他使用协商好的协议进行相互通信的设备。所有交互背后的驱动力都是软件&#xff0c;软件为工控系统中几乎所有部分的运行提供支撑…

2月12号

第一种判断方式 if (n 10) 更好&#xff0c;因为它具有更好的可读性、可以避免误操作&#xff0c;并符合常见的编程习惯和约定

问题:下列不属于影响职业选择的内在因素是()。 #微信#微信

问题&#xff1a;下列不属于影响职业选择的内在因素是&#xff08;&#xff09;。 A.健康 B.个性特征 C.性别 D.家庭的影响 参考答案如图所示

程序员搞什么副业才有性价比?

干一行恨一行&#xff0c;三百六十行&#xff0c;行行干破防&#xff01; 一份稳定的主业固然重要&#xff0c;但是有性价比的副业更令人心动。朝九晚五的工作日复一日&#xff0c;当然也可能是996的生活反复捶打。从整体来讲&#xff0c;程序员算是高收入群体&#xff0c;但往…

C++ 图上 bfs(五十八)【第五篇】

今天我们来学习一下图上bfs。 1.图上bfs 在图上&#xff0c;我们也可以进行 BFS&#xff0c;也可以解决图上 DFS 能解决的问题&#xff0c;比如连通块。 除此以外&#xff0c;根据 BFS 的性质&#xff0c;第一次到一个点的时候记下来的步数一定是到从起点到这个点的最小步数&…

【论文精读】GPT2

摘要 在单一领域数据集上训练单一任务的模型是当前系统普遍缺乏泛化能力的主要原因&#xff0c;要想使用当前的架构构建出稳健的系统&#xff0c;可能需要多任务学习。但多任务需要多数据集&#xff0c;而继续扩大数据集和目标设计的规模是个难以处理的问题&#xff0c;所以只能…

PR:视频编辑播放速度技巧

想要视频片段加速或者减速&#xff0c;可以在片段上右击&#xff0c;选择“速度/持续时间...” 速度&#xff1a;可以更改百分比&#xff0c;如改成200%就是加速一倍&#xff0c;改成50%就是减速一倍。 注&#xff1a;如果源视频是正常速度录制的&#xff0c;比如每秒25帧&…