初入职,如何用好 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 checkout / git restore XX:将XX文件尚未加入暂存区的修改全部撤销

  8. git restore

    • git restore --staged xxx:将 xxx 文件从暂存区中删除
    • git restore xxx:对 xxx 文件的进行了修改,还没有加到暂存区,想删除 xxx 文件中的修改内容,恢复到暂存区中存储的版本(如果暂存区中没有内容,就恢复到 Head 指向的节点的版本)
  9. git add . :当修改的文件很多的时候,将所有被修改过的文件全部加到暂存区;只有文件状态发生改变的文件才会被添加,如果文件没有修改,那么它就不会添加到暂存区中

  10. 当前分支:从最初节点状态到当前 Head 指针指向节点的路径(只会看当前路径上的所有节点,方向是从下往上);在当前分支进行节点回滚;回滚历史版本的含义是将当前工作目录下所有的被管理的文件(文件内容)全部恢复到回滚到节点的状态

  11. 回滚操作

    1. git log
      1. 只能打印从最初状态j节点到当前 Head 所指向节点上路径的版本
      2. 信息会显示在多行
    2. git log --pretty=oneline:将信息显示在一行
      1. 打印的是 HEAD 指针走过的所有节点的历史记录(可以找到每个节点版本的编号,每个节点版本都有一个编号)
      2. git reset --hard HEAD^
      3. git reset --hard HEAD~100
      4. git reset --hard 版本号

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构记录

之前记录的数据结构笔记,不过图片显示不了了 数据结构与算法(C版) 1、绪论 1.1、数据结构的研究内容 一般应用步骤:分析问题,提取操作对象,分析操作对象之间的关系,建立数学模型。 1.2、基本概念和术语 数据&…

Finite Element Procedures K.J.Bathe 【教材pdf+部分源码】|有限元经典教材 | 有限元编程

专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现,并提供所有案例完整源码;2.单元…

flask的使用学习笔记1

跟着b站学的1-06 用户编辑示例_哔哩哔哩_bilibili flask是一个轻量级,短小精悍,扩展性强,可以扩展很多组件,django大而全 编程语言它们的区别: (这些语言都很了解,java和python是高级语言,都…

动手做一个最小Agent——TinyAgent!

Datawhale干货 作者:宋志学,Datawhale成员 前 言 大家好,我是不要葱姜蒜。在ChatGPT横空出世,夺走Bert的桂冠之后,大模型愈发地火热,国内各种模型层出不穷,史称“百模大战”。大模型的能力是毋…

UE4几个常用节点链接

UE4几个常用节点链接 2017-12-02 12:54 1. 流光材质(及uv平铺次数) 2. 跑九宫格 3.闪光3。1 粒子闪烁效果 4.图案重复5.平移扭曲 6.溶解 刀光的uv滚动图片源或采样节点属性里改成clamp无后期发光光晕anistropic 各向异性高光法线图 法线图叠加 blendangle orrectedNo…

探索设计模式的魅力:揭秘B/S模式在AI大模型时代的蜕变与进化

​🌈 个人主页:danci_ 🔥 系列专栏:《设计模式》 💪🏻 制定明确可量化的目标,坚持默默的做事。 揭秘B/S模式在AI大模型时代的蜕变与进化 🚀在AI的波澜壮阔中,B/S模式&…

为 AI 而生的编程语言「GitHub 热点速览」

Mojo 是一种面向 AI 开发者的新型编程语言。它致力于将 Python 的简洁语法和 C 语言的高性能相结合,以填补研究和生产应用之间的差距。Mojo 自去年 5 月发布后,终于又有动作了。最近,Mojo 的标准库核心模块已在 GitHub 上开源,采用…

面试题:JVM 调优

一、JVM 参数设置 1. tomcat 的设置 vm 参数 修改 TOMCAT_HOME/bin/catalina.sh 文件,如下图 JAVA_OPTS"-Xms512m -Xmx1024m" 2. springboot 项目 jar 文件启动 通常在linux系统下直接加参数启动springboot项目 nohup java -Xms512m -Xmx1024m -jar…

前端html+css+js常用总结快速入门

🔥博客主页: A_SHOWY🎥系列专栏:力扣刷题总结录 数据结构 云计算 数字图像处理 力扣每日一题_ 学习前端全套所有技术性价比低下且容易忘记,先入门学会所有基础的语法(cssjsheml)&#xff…

Valkey是一个新兴的开源项目,旨在成为Redis的替代品,背后得到了AWS、Google、Oracle支持

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

Windows 禁用 Defender

原文:https://blog.iyatt.com/?p8078 2024.4.4 Windows 11 专业版 23H2 Beta 预览版 进入安全中心,关闭所有,特别是篡改防护选项 打开注册表 地址栏粘粘路径 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defende…

Rust线程间通信通讯channel的理解和使用

Channel允许在Rust中创建一个消息传递渠道,它返回一个元组结构体,其中包含发送和接收端。发送端用于向通道发送数据,而接收端则用于从通道接收数据。不能使用可变变量的方式,线程外面修改了可变变量的值,线程里面是拿不…

使用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…

RAG原理、综述与论文应用全解析

1. 背景 1.1 定义 检索增强生成 (Retrieval-Augmented Generation, RAG) 是指在利用大语言模型回答问题之前,先从外部知识库检索相关信息。 早在2020年就已经有人提及RAG的概念(paper:Retrieval-augmented generation for knowledge-inten…

UE4_材质节点

UE4_材质节点 2017-12-07 13:56 跑九宫格 跑UV 评论(0)

AI技术助推汽车行业走向更光明的未来

我们在汽车上度过的时间很多,有时候由于交通、天气和其他路况问题,我们在汽车上度过的时间之久甚至会出乎意料。正因如此,保障旅途体验的舒适和安全就显得至关重要。交通事故每天都会发生,因此在车辆中采取额外的安全措施对于所有…

Windows下用CMake编译PugiXML及配置测试

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 PugiXML是什么? PugiXML 是一个用于解析和操作 XML 文档的 C 库。它提供了简单易用的接口,能够高效地加载…

0基础安装配置Linux-ubuntu环境

Vmtools的安装参见 0基础教你安装VM 17PRO-直接就是专业许可证版_vm17许可证-CSDN博客 在vmtools中安装ubuntu 等待安装 这时候发现没有继续按钮,我们关闭这个界面,进入系统中,先更改分辨率 点击这个三角,因为还么有安装成功&am…

WSJ0源数据处理,wv转换为wav

WSJO数据集原始 文件.wv1&.wv2转换成wav文件 ​ 最近做语音分离实验需要用到wsj0-2mix数据集,但是从李宏毅语音分离教程里面获取的wsj0-2mix只有一部分。从网上获取到了完整的WSJO数据集后,由于原始的语音文件后缀是wv1或者wv2,创建wsj0…

Java 7、Java 8常用新特性

目录 Java 8 常用新特性1、Lambda 表达式2、方法引用2.1 静态方法引用2.2 特定对象的实例方法引用2.3 特定类型的任意对象的实例方法引用2.4 构造器引用 3、接口中的默认方法4、函数式接口4.1 自定义函数式接口4.2 内置函数式接口 5、Date/Time API6、Optional 容器类型7、Stre…