初入职,如何用好 git 快速上手项目开发

前言

介绍在工作中使用 git 工具

文章目录

    • 前言
    • 一、git 简介
      • 1、是什么
      • 作用
      • 操作
      • 3、用途
    • 二、基本概念
      • 1、工作区
      • 2、暂存区
      • 3、版本库
      • 4、操作过程
    • 三、基本命令操作

一、git 简介

1、是什么

  • git 是一个方便管理代码版本的工具,用一个树结构来维护和管理所有的历史版本;
  • 可持久化(可存储),可支持多人合作;

作用

  • git 用来管理仓库(文件夹)中所有的文件,其中文件中写的是代码;

操作

  • 从起点开始,起点为初始版本,每个节点为一个版本;
  • 每个节点都可以同时扩展多个分支,可以实现不同分支之间相互合并的操作;
  • 可以实现回滚操作,即恢复到某一个历史版本;

3、用途

  • 单人开发项目
    • 回滚历史版本;
  • 多人合作开发项目
    • 云平台
      • 存储历史版本,相互间同步代码;
      • 个人每次修改的时候,从云端将最新的项目代码拉到本地,本地每次开一个新的分支来写,写完后再合并一起;

二、基本概念

1、工作区

  • 当前的工作目录(当前所在的文件夹);
  • 注意
    • 工作区与分支要区分开,工作区只有一个,无论在哪个分支都只有一个工作区;
    • 错误理解:每个分支上的每个节点都有一个独立的工作区;

2、暂存区

  • 工作区与版本库之间的桥梁;

3、版本库

  • 将所有的历史版本通过树结构的形式进行存储;
  • Head 指针,Head 指针每次只会处于一个历史版本节点;

4、操作过程

  • 目的:实现将当前工作区的内容存储到版本库中;
  • 做法
    • 1)将当前工作区的内容添加到暂存区(每次认为自己写的代码有价值的时候,将其存放到暂存区);
    • 2)在版本库中当前 Head 节点后面创建一个新的节点,将暂存区中的内容放到新节点中,同时 Head 指针会往后移动一位;
  • 注意
    • 每次将工作区的内容放到暂存区中时,不会创建新的节点;
    • 将暂存区中的内容存到版本库中时会新创建一个新的节点,并将 Head 后移一位;
    • Head 指针可以进行分支的切换;

三、基本命令操作

  1. 登录服务器后,先设置自己的名字和邮箱;

    • 配置完成后,名字和邮箱信息是记录在 .config 文件中;
  2. 创建项目

    1. 本地创建文件夹并进入(此时当前文件夹还是普通文件夹);
    2. 将当前所在目录的文件夹配置为一个仓库
      • 仓库的概念:仓库的这个概念本质就是一个文件夹;
      • 执行 git init
      • 此时所有信息存放到 .git 文件夹中
  3. git add xxx:将当前 xxx文件的修改存到暂存区;

  4. git status:查看工作区相对于暂存区的修改状态;

  5. git commit -m “修改的描述”:将暂存区内容提交到当前本地版本分支的当前节点

    • 目的:即将暂存区内容持久化
    • 执行 commit 时包含的操作
      1. 在当前 Head 所指节点的创建下一个新节点;
      2. 并将当前暂存区中的内容存储到新节点中;
      3. 同时 Head 指针指向到新节点的位置,并删除当前暂存区中的内容;
  6. git diff xxx :比对当前工作区 xxx 文件中的内容与暂存区中 xxx 文件中内容的区别

  7. git restore

    • git restore --staged xxx:将 xxx 文件从暂存区中删除
    • git restore xxx:对 xxx 文件的进行了修改,还没有加到暂存区,想删除 xxx 文件中的修改内容,恢复到暂存区中存储的版本(如果暂存区中没有内容,就恢复到 Head 指向的节点的版本)
  8. git add . :当修改的文件很多的时候,将所有被修改过的文件全部加到暂存区

    • 只有文件状态发生改变的文件才会被添加,如果文件没有修改,那么它就不会添加到暂存区
  9. 查看当前分支中的所有历史版本

    1. 概念
      1. 当前分支:从最初节点状态到当前 Head 指针指向节点的路径(只会看当前路径上的所有节点,方向是从下往上)
    2. 操作
      1. git log
        1. 只能打印从最初状态j节点到当前 Head 所指向节点上路径的版本
        2. 信息会显示在多行
      2. git log --pretty=oneline:将信息显示在一行
        1. 打印的是 HEAD 指针走过的所有节点的历史记录(可以找到每个节点版本的编号,每个节点版本都有一个编号)
  10. 在当前分支进行节点回滚

  11. 概念

    1. 回滚历史版本的含义:将当前工作目录下所有的被管理的文件(文件内容)全部恢复到回滚到节点的状态
  12. 操作

    1. git reset --hard HEAD^
    2. git reset --hard HEAD~100
    3. git reset --hard 版本号

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

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

相关文章

PTA题解 --- 静静的推荐(C语言)

今天是PTA题库解法讲解的第七天,今天我们要讲解静静的推荐,题目如下: 解题思路: 这个问题的核心在于如何在满足给定条件的情况下,最大化推荐学生的数量。首先,我们需要过滤出所有天梯赛成绩不低于175分的学…

USB4 C母 Docking设计PCBA简单性能测试

一:设备需求 USB4 PCBA 主板;1台Type-C笔记本 ;1个PD诱骗器 ;1个DC电源20V 10A;1个3.5耳机;2条C to C全功能线(带Emarker);2个U盘(USB-A 口)&…

Golang实现一个聊天工具

简介 聊天工具作为实时通讯的必要工具,在现代互联网世界中扮演着重要的角色。本博客将指导如何使用 Golang 构建一个简单但功能完善的聊天工具,利用 WebSocket 技术实现即时通讯的功能。 项目源码 点击下载 为什么选择 Golang Golang 是一种高效、简…

Python爬虫之分布式爬虫

分布式爬虫 1.详情介绍 分布式爬虫是指将一个爬虫任务分解成多个子任务,在多个机器上同时执行,从而加快数据的抓取速度和提高系统的可靠性和容错性的技术。 传统的爬虫是在单台机器上运行,一次只能处理一个URL,而分布式爬虫通过将…

【C语言】联合和枚举

个人主页点这里~ 联合和枚举 一、联合体1、联合体类型的声明2、联合体成员的特点3、与结构体对比4、计算联合体大小 二、枚举1、枚举的声明2、枚举的优点3、枚举类型的使用 一、联合体 1、联合体类型的声明 联合体的定义与结构体相似,但是联合体往往会节省更多的空…

实验报告答案

基本任务(必做) 先用普通用户(自己的姓名拼音)登录再操作 编程有代码截图和执行过程结果截图 代写获取: https://laowangall.oss-cn-beijing.aliyuncs.com/studentall.pdf 1. Linux的Shell编程 (1&am…

加速科技高性能数模混合信号测试设备ST2500EX精彩亮相SEMICON China 2024

芯片是现代信息技术发展的重要支柱,半导体设备则是芯片产业发展的重要基石。近年来,半导体设备领域开启了国产自研的黄金浪潮,其中,测试机作为芯片测试中至关重要的核心设备之一,国产自研率较低,一直是国内…

使用libibverbs构建RDMA应用

本文是对论文Dissecting a Small InfiniBand Application Using the Verbs API所做的中英文对照翻译 Dissecting a Small InfiniBand Application Using the Verbs API Gregory Kerr∗ College of Computer and Information ScienceNortheastern UniversityBoston, MAkerrgccs…

基于深度学习的植物叶片病毒识别系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要:本文深入研究了基于YOLOv8/v7/v6/v5的植物叶片病毒识别系统,核心采用YOLOv8并整合了YOLOv7、YOLOv6、YOLOv5算法,进行性能指标对比;详述了国内外研究现状、数据集处理、算法原理、模型构建与训练代码,及基于Strea…

2024年泰迪杯数据挖掘B题详细思路代码文章教程

目前b题已全部更新包含详细的代码模型和文章,本文也给出了结果展示和使用模型说明。 同时文章最下方包含详细的视频教学获取方式,手把手保姆级,模型高精度,结果有保障! 分析: 本题待解决问题 目标&#…

296个地级市GDP相关数据集(2000-2023年)

01、数据简介 GDP,即国内生产总值(Gross Domestic Product),是指一个国家或地区所有常住单位在一定时期内生产活动的最终成果。 名义GDP,也称货币GDP,是指以生产物品和劳务的当年销售价格计算的全部最终产…

汉诺塔问题的递归算法解析

文章目录 汉诺塔问题的递归算法解析问题描述递归算法思路代码实现算法复杂度分析总结 汉诺塔问题的递归算法解析 问题描述 汉诺塔问题是一个经典的递归算法问题。问题描述如下: 在经典汉诺塔问题中,有 3 根柱子及 N 个不同大小的穿孔圆盘,盘…

日历插件fullcalendar【前端】

日历插件fullcalendar【前端】 前言版权开源推荐日历插件fullcalendar一、下载二、初次使用日历界面示例-添加事件,删除事件 三、汉化四、动态数据五、前后端交互1.环境搭建-前端搭建2.环境搭建-后端搭建3.代码编写-前端代码fullcalendar.htmlfullcalendar.js 4.代码…

【realme x2手机解锁BootLoader(简称BL)】

realme手机解锁常识 https://www.realme.com/cn/support/kw/doc/2031665 realme手机解锁支持型号 https://www.realmebbs.com/post-details/1275426081138028544 realme x2手机解锁实践 参考:https://www.realmebbs.com/post-details/1255473809142591488 1 下载apk…

【yolov5小技巧(1)】---可视化并统计目标检测中的TP、FP、FN

文章目录 🚀🚀🚀前言一、1️⃣相关名词解释二、2️⃣论文中案例三、3️⃣新建相关文件夹四、4️⃣detect.py推理五、5️⃣开始可视化六、6️⃣可视化结果分析 👀🎉📜系列文章目录 嘻嘻 暂时还没有~~~~ &a…

windows上配置Redis主从加哨兵模式实现缓存高可用

一、哨兵模式 哨兵(sentinel)是Redis的高可用性(High Availability)的解决方案:由一个或多个sentinel实例组成sentinel集群可以监视一个或多个主服务器和多个从服务器。当主服务器进入下线状态时,sentinel可以将该主服务器下的某…

R语言中的常用数据结构

目录 R对象的基本类型 R对象的属性 R的数据结构 向量 矩阵 数组 列表 因子 缺失值NA 数据框 R的数据结构总结 R语言可以进行探索性数据分析,统计推断,回归分析,机器学习,数据产品开发 R对象的基本类型 R语言对象有五…

拯救者Legion R9000X 2021(82HN)原装出厂Win10系统镜像ISO下载

lenovo联想拯救者笔记本R9000X 2021款原厂Windows10系统安装包,恢复出厂开箱状态预装OEM系统 链接:https://pan.baidu.com/s/1tx_ghh6k0Y9vXBz-7FEQng?pwd7mih 提取码:7mih 原装出厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标…

法律行业案例法模型出现,OPenAI公布与法律AI公司Harvey合作案例

Harvey与OpenAl合作,为法律专业人士构建了一个定制训练的案例法模型。该模型是具有复杂推理广泛领域知识以及超越单一模型调用能力的任务的AI系统,如起草法律文件、回答复杂诉讼场景问题以及识别数百份合同之间的重大差异。 Harvey公司由具有反垄断和证…

Git的简单入门使用

文章目录 拷贝项目的步骤创建项目的步骤提交项目或项目文件的步骤恢复项目文件的步骤 拷贝项目的步骤 找到需要用来存放项目的文件夹;在文件夹页面空白处右键点击,然后再菜单中选择“Open Git Bash here”。在Github上找到需要进行拷贝的项目&#xff0…