当前位置: 首页 > news >正文

版本控制工具——git

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。 版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的版本号都将增加。除了记录版本变更外,版本控制的另一个重要功能是并行开发。软件开 发往往是多人协同作业,版本控制可以有效地解决版本的同步以及不同开发者之间的开发通信问题,提高协同开发的效率。

什么是git?

maven是项目管理工具,git是版本控制工具
版本控制工具的作用:

  1. 记录版本。版本(修改过的历史记录)。帮助我们将修改后的版本保存下来,后期可以保存下来,理解为一个代码仓库
  2. 团队中实现代码共享
    在这里插入图片描述
    版本控制工具:
  • CVS(听过就行)
  • SVN SubVersion(集中式的版本控制工具)
  • git 最新的,分布式的版本控制工具

集中式版本控制工具 SVN

特点:所有的历史记录都在服务器端,程序员本地不存储历史版本,结构简单。但是万一服务器崩溃了代码就没了
在这里插入图片描述

分布式版本控制工具 Git

特点:在每一个程序员的电脑上,都会安装一个客户端(本地仓库),先把代码提交到本地仓库,在推送给远程仓库
好处:每个程序员电脑都有一个仓库记录版本
在这里插入图片描述

git工作流程

本地工作流程及基本概念

在这里插入图片描述
工作区:就是你在电脑里能看到的目录,在本地磁盘创建项目(一般在开发工具中完成).
暂存区:英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(. git/index)中,添加工作区代码到暂存区,暂存区代码是临时存储,可以撤销.
版本库:工作区有一个隐藏目录 .git,是 Git 的版本库,提交暂存区代码到本地仓库,生成历史版本记录,历史版本记录不可删除,可以查看不同时期提交的历史记录,和其他版本做比较

完整的运行流程(本地库与远程仓库)

在这里插入图片描述

Git 基本操作

Git 常用的是以下命令:
git add 、git commit、git reset、git clone(从远程仓库把代码弄到本地)

  1. 创建仓库: D:\gitTest 自己创建文件夹
  2. 命令行窗口进入所在目录(同级)
    在这里插入图片描述
  3. 初始化仓库:git init 仓库名
    会生成.git的隐藏文件,.git是存放历史版本的记录
  4. 提交到暂存区:git add 文件名(提交指定文件)
    git add .(提交所有所有文件)
  5. 查看暂存区:git ls-files
    在这里插入图片描述
  6. 恢复暂存区的指定文件到工作区:
    git reset 文件名(撤销指定文件 )
    git reset . (撤销所有文件 )
  7. 提交到本地仓库: git commit -m 注释
  8. 查看仓库状态:git status
  9. 克隆项目:git clone 地址

idea继承git并添加项目到git仓库

1.idea集成git

在这里插入图片描述

2.初始化本地Git仓库项目

在这里插入图片描述
在这里插入图片描述
此时,在项目中生成**.git**版本控制管理文件
在这里插入图片描述

3. 添加到暂存区

添加文件到暂存区前,可以设置忽略文件功能,将不需要提交的文件排除掉.
安装ignore插件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
生成.gitignore文件
在这里插入图片描述
先选择add添加到暂存区;再选择commit添加到本地仓库
在这里插入图片描述
最开始,颜色是红棕色,(Add)添加成功后,颜色会变成绿色;Commit之后,颜色变正常

4.Git本地库操作

1.查询历史版本记录,选中一个文件
在这里插入图片描述
2.选中某个历史版本覆盖工作区文件
git完之后,要重新commit
3.选中对应版本进行比较
在这里插入图片描述
选中历史版本与工作区进行比较
在这里插入图片描述

相关文章:

版本控制工具——git

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。 版本控制最主要的功能就是追踪文件的变更。它将什么时候、什么人更改了文件的什么内容等信息忠实地了记录下来。每一次文件的改变,文件的…...

超详细,自动化测试实战-获取配置文件信息(实例源码)

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 配置文件的类型 …...

spring 2.7.14 cors 设置 allowedOrigins(“*“)通配符 失效怎么解决

失效代码: package com.yukuanyan.searcher_web.config;import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebM…...

一、Go的前景与优势、基础语法

Go简介 Go的公司、场景应用 公司占比: 字节跳动领先,公司内部有上万个微服务使用go来编写,不久前也开源了GO RPC框架KiteX。 同时,腾讯、百度、美团、滴滴、深信服、平安、OPPO、知乎、去哪儿、360、金山、微博、哩哔哩、七牛、…...

shell脚本循环语句

shell脚本循环语句 一.echo命令二.查看当前系统的时间--date命令三.循环语句for四.while循环语句结构五.while循环语句结构(迭代)六.continue和break 一.echo命令 echo -n 表示不换行输出 echo -e输出转义符,将转义后的内容输出到屏幕上 常…...

二叉树题目:二叉树的直径

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:二叉树的直径 出处:543. 二叉树的直径 难度 3 级 题目描述 要求 给定二叉树的根结点 root \texttt{root} root,返回其直径…...

嵌入式:C高级 Day4

一、整理思维导图 二、写一个函数&#xff0c;获取用户的uid和gid并使用变量接收 三、整理冒泡排序、简单选择排序和快速排序的代码 冒泡排序 #include <myhead.h>void output(int arr[], int len); void bubble_sort(int arr[], int len);int main(int argc, const ch…...

cmake常用命令(1)——函数相关

一、function/endfunction cmake中的函数与其他语言相似&#xff0c;表示一个命令集&#xff0c;可以被重复调用。形式如下&#xff1a; function(<name> [<arg1> ...])<commands> endfunction() function&#xff1a;表示函数开始 <name>&#xf…...

阿里三年功能测试的一些感悟

一、前言 功能测试是测试工程师的基础功&#xff0c;很多人功能测试还做不好&#xff0c;就想去做性能测试、自动化测试。很多人对功能测试的理解就是点点点&#xff0c;如何自己不用心去悟&#xff0c;去研究&#xff0c;那么你的职业生涯也就停留在点点点上了。在这里&#…...

React源码解析18(4)------ completeWork的工作流程【mount】

摘要 经过上一章&#xff0c;我们得到的FilberNode已经具有了child和return属性。一颗Filber树的结构已经展现出来了。 那我们最终是想在页面渲染真实的DOM。所以我们现在要在completeWork里&#xff0c;构建出一颗离屏的DOM树。 之前在说FilberNode的属性时&#xff0c;我们…...

Kafka: 详解、使用教程和示例

Kafka: 详细介绍、使用教程和示例 什么是 Kafka&#xff1f; Kafka 是一个分布式的流处理平台&#xff0c;最初由 LinkedIn 开发&#xff0c;现已成为 Apache 基金会的顶级项目。它以高吞吐量、可靠性和可扩展性而闻名&#xff0c;被广泛应用于实时数据传输、日志收集、事件处…...

【LeetCode周赛】LeetCode第358场周赛

LeetCode第358场周赛 数组中的最大数对和翻倍以链表形式表示的数字限制条件下元素之间的最小绝对差 数组中的最大数对和 给你一个下标从0开始的整数数组nums。请你从nums中找出和最大的一对数&#xff0c;且这两个数数位上最大的数字相等。 返回最大和&#xff0c;如果不存在满…...

Node.js学习笔记-04

这第九章也是个大重点 九、玩转进程 Node在选型时决定在V8引擎之上构建&#xff0c;也就意味着它的模型与浏览器类似。 本章关于进程的介绍和讨论将会解决如下两个问题&#xff1a; 单进程单线程并非完美&#xff0c;如今CPU基本均是多核的&#xff0c;真正的服务器&#xf…...

基于dbn+svr的交通流量预测,dbn详细原理

目录 背影 DBN神经网络的原理 DBN神经网络的定义 受限玻尔兹曼机(RBM) DBN+SVR的交通流量预测 基本结构 主要参数 数据 MATALB代码 结果图 展望 背影 DBN是一种深度学习神经网络,拥有提取特征,非监督学习的能力,是一种非常好的分类算法,本文将DBN+SVR用于交通流量预测…...

【第一阶段】kotlin中反引号中的函数名特点

在kotlin中可以直接中文定义函数&#xff0c;使用反引号进行调用 eg: fun main() {2023年8月9日定义的函数(5) }private fun 2023年8月9日定义的函数(num:Int){println("反引号的用法$num") }执行结果 在Java中is,in可以定义方法&#xff0c;但是在kotlin中is,in是…...

数据分析-python学习 (1)numpy相关

内容为&#xff1a;https://juejin.cn/book/7240731597035864121的学习笔记 导包 import numpy as np numpy数组创建 创建全0数组&#xff0c;正态分布、随机数组等就不说了&#xff0c;提供了相应的方法通过已有数据创建有两种 arr1np.array([1,2,3,4,5]) 或者datanp.loadt…...

数据库的游标

数据库的游标&#xff08;Cursor&#xff09;是用于在数据库中进行数据操作的一个控制结构。它类似于在编程语言中使用的指针或迭代器&#xff0c;用于遍历数据库结果集并在结果集上执行各种操作。 游标允许我们在数据库查询的结果集中逐行移动&#xff0c;并对每一行执行特定…...

【设计模式】前端控制器模式

前端控制器模式&#xff08;Front Controller Pattern&#xff09;是用来提供一个集中的请求处理机制&#xff0c;所有的请求都将由一个单一的处理程序处理。该处理程序可以做认证/授权/记录日志&#xff0c;或者跟踪请求&#xff0c;然后把请求传给相应的处理程序。以下是这种…...

SQL | 过滤数据

4-过滤数据 4.1-使用WHERE子句 数据根据 WHERE 子句中指定的搜索条件进行过滤。WHERE 子句在表名&#xff08; FROM 子句&#xff09;之后给出。 select prod_name,prod_price from products where prod_price 3.49; 上述语句查询价格为3.49的行&#xff0c;然后输出名字和…...

【力扣每日一题】2023.8.13 合并两个有序数组

目录 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 代码&#xff1a; 题目&#xff1a; 示例&#xff1a; 分析&#xff1a; 题目给我们两个升序数组&#xff0c;让我们合并它们&#xff0c;要求合并之后仍然是升序&#xff0c;并且这个合并操作是在数组1原地修改…...

【单片机0.2】

文章目录六个9第一位和第六位亮六个灯亮轮播0-9中间两个灯亮轮播0-9亮灯123456小数点13.14.15六个9 #include<reg52.h> // 头文件// 定义锁存器控制引脚 sbit dulaP3^4; // 锁存器U2&#xff08;段选&#xff09; sbit welaP1^6; // 锁存器U2&#xff08;位选&#xff0…...

基于File-Based App开发MVP项目鸥

Issue 概述 先来看看提交这个 Issue 的作者是为什么想到这个点子的&#xff0c;以及他初步的核心设计概念。?? 本 PR 实现了 Apache Gravitino 与 SeaTunnel 的集成&#xff0c;将其作为非关系型连接器的外部元数据服务。通过 Gravitino 的 REST API 自动获取表结构和元数据&…...

当AI能做一切,我们还剩下什么?

许多人以为&#xff0c;数字化就是用机器取代人。算法越来越聪明&#xff0c;自动化越来越普及&#xff0c;人的作用似乎正在被削弱。 事实恰恰相反。 数字化不是人的退场&#xff0c;而是人的升级。技术每向前推进一步&#xff0c;对人的要求就提高一层。机器负责执行&#xf…...

Pretext:值得关注的文本排版引擎依

一、语言特性&#xff1a;Java 26 与模式匹配进化 1.1 Java 26 语言级别支持 IDEA 2026.1 EAP 最引人注目的变化之一&#xff0c;就是新增 Java 26 语言级别支持。这意味着开发者可以提前体验和测试即将在 JDK 26 中正式发布的语言特性。 其中最重要的变化是对 JEP 530 的全面支…...

Python编程第09课:Python列表(List)操作完全手册

前言&#xff1a;Python最常用的数据结构 列表是Python中最常用、最灵活的数据结构。它就像一个容器&#xff0c;可以存储任意类型的元素&#xff0c;并且可以随时添加、删除或修改元素。无论是处理数据、实现算法还是构建应用程序&#xff0c;列表都是你离不开的工具。 本课程…...

如何解决数位板跨平台兼容难题?OpenTabletDriver开源驱动的一站式配置体验

如何解决数位板跨平台兼容难题&#xff1f;OpenTabletDriver开源驱动的一站式配置体验 【免费下载链接】OpenTabletDriver Open source, cross-platform, user-mode tablet driver 项目地址: https://gitcode.com/gh_mirrors/op/OpenTabletDriver OpenTabletDriver是一款…...

知网AIGC查重的原理与降AI的实用技巧

很多同学看到查重报告里AIGC指数飙升时&#xff0c;第一反应是恐慌&#xff0c;觉得系统看出了文章不是自己写的。其实没必要把检测系统想得太智能&#xff0c;它根本读不懂文章的内容。 目前的检测逻辑主要基于两个核心统计学指标&#xff1a;困惑度和突发性。只要搞懂这两个概…...

Flutter 动画控制器:打造流畅的动画体验

Flutter 动画控制器&#xff1a;打造流畅的动画体验掌握 Flutter 动画控制器的高级技巧&#xff0c;创造流畅而优雅的动画效果。一、动画控制器概述 作为一名把代码当散文写的 UI 匠人&#xff0c;我对 Flutter 动画控制器有着独特的见解。动画控制器是 Flutter 动画系统的核心…...

RDMA 核心原理:RoCE v2 与传输操作详解

一、RDMA原理操作 RDMA 传输符合 RoCE v2 协议 RDMA over Converged Ethernet (RoCE) 是一种网络协议&#xff0c;它利用远程直接内存访问 (RDMA) 功能来显着加速托管在服务器集群和存储阵列上的应用程序之间的通信。RoCE 结合了IBTARDMA 语义&#xff0c;允许设备在应用程序级…...

终极adr-tools错误处理与调试指南:7个常见问题解决方案大全

终极adr-tools错误处理与调试指南&#xff1a;7个常见问题解决方案大全 【免费下载链接】adr-tools Command-line tools for working with Architecture Decision Records 项目地址: https://gitcode.com/gh_mirrors/ad/adr-tools adr-tools是一款高效的架构决策记录&am…...