企业级开发——Git使用

news2024/11/25 4:57:37

一 Git介绍

1 什么是版本控制

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。

2 为什么使用版本控制

采用手动复制的方式管理版本,会造成版本管理混乱,而通过版本控制管理,能记住针对软件的每一次改动,能够比较查看不同版本之间的异同,并且可以恢复到之前的任一版本;

有利于团队开发,能让团队中的成员了解到代码的最新情况,避免重复劳动,也便于解决代码冲突问题。

一些常用的版本控制软件包括:Git、SVN、CVS、TFS等

3 Git介绍

Git是一个开源的分布式版本控制系统,是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

3.1 下载和安装

https://git-scm.com/

安装后,使用如下命令验证是否可以正常使用:

C:\Users\renrui>git --version
git version 2.35.1.windows.2

3.2 Git基本架构

工作区:就是你在电脑里能看到的目录。

暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。

版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

二 本地仓库

1 基本使用

1.1 配置用户和邮箱

用于记录提交是谁完成的,注意,此处配置的用户名和邮箱不会进行验证

git config --global user.name "renr"
git config --global user.email "123444@aliyun.com"

1.2 初始化仓库

1)创建本地仓库的文件夹
mkdir mysys
2)初始化仓库

先切换到仓库文件夹,再初始化

D:\>cd mysys

D:\mysys>git init
Initialized empty Git repository in D:/mysys/.git/

初始化空仓库后,会生成一个.git目录

3) 将工作空间的修改添加到暂存区

在仓库中新建hello.txt文件

然后执行git add 命令

D:\mysys>git add hello.txt
4)暂存区内容提交到仓库
D:\mysys>git commit -m "create hello.txt"
[master (root-commit) f35de6b] create hello.txt
 1 file changed, 1 insertion(+)
 create mode 100644 hello.txt

-m 后面表示本次提交的说明

创建Git版本库时,Git自动为我们创建了一个master分支,所以,git commit就是往master分支上提交更改。

注意:修改文件内容后,需要再次执行add和commit命令

修改没有提交到暂存区时,如果想撤销修改,可以使用git checkout hello.txt命令操作

2 其他命令

2.1 查看仓库状态

git status

对文件进行修改,通过git status查看状态

2.2 对比查看修改了什么内容

git diff

2.3 查看修改的历史记录

git log

2.4 版本回退

git reset [--soft | --mixed | --hard] ,默认--mixed

1)--mixed

回退到指定版本后,该版本之后的修改放在工作区,没有放在暂存区,即回退了commit和add操作

注意:打开文件查看,其内容没有变化

2)-- soft

回退到指定版本后,该版本之后的修改放在暂存区,即回退了commit操作

注意:打开文件查看,其内容没有变化

3)--hard

回退到指定版本后,该版本之后的修改都会删除

注意:查看文件,发现文件中内容显示的是上个版本内容

2.5 撤销提交

git revert

通过该命令可以撤销某次提交,撤销提交时,原来的提交记录还会保留,同时会生成一个新的提交

弹出交互式页面,输入 :q,退出

如果revert时,不想自动生成新的提交,可以使用-n选项,比如 git revert -n head

查看日志,发现新生成了一个提交,查看文件,内容回退到上个版本

revert中间的某次提交时,可能会存在冲突

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

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

相关文章

测试使用开源异构迁移工具dbswitch

dbswitch: 异构数据库迁移同步(搬家)工具 (base) rootnode13:~# cat /etc/issue Ubuntu 20.04.5 LTS \n \l (base) rootnode13:~# curl -k -sSL https://gitee.com/dromara/dbswitch/attach_files/1878800/download > /tmp/dbswitch_install.sh && bash /tmp/dbsw…

地级市地理相邻矩阵(地级市名称版、行政区划代码版)

地级市地理相邻矩阵(地级市名称版、行政区划代码版) 范围:294个地级市 格式:地级市名称版、行政区划代码版 说明:数据为同省下城市之间的相邻矩阵,表示同一省份内各个城市相互之间邻近关系。如果同一省份…

VTK+Qt+Cmake+VS的环境搭建

VTKQtCmakeVS的环境搭建 一、准备工作二、VTK源码安装过程三、错误排查四、Cmake中引用VTK五、代码示例 本文的主要内容:简单介绍如何使用Cmake编译安装VTK源代码;如何配置VTK在Qt中的使用环境;如何以VS作为IDE在C下使用QtVTK。 哪些人适合阅…

android studio .android和.gradle迁移到其他盘

操作 可以看到gradle和android占用不小 .android 将C盘的.android迁移到D盘 切换到.android下面的avd目录,修改ini文件 .gradle 将.gradle复制到D盘 在Android studio的文件夹下面新建一个文件夹,我这里命名androidcache。接着在Android studio的…

「bug」nvitop ERROR: Failed to initialize curses

nvitop 作为一个优秀个 Nvidia显卡查询库,简单易用且显示信息十分丰富,相比 Nvidia-smi 更方便,简直是每个 开发人员必备的库,安装也十分方便,直接采用 pip install nvitop 即可,调用的时候也是直接在 Term…

51单片机波特率的计算方法

通过51单片机的波特率,来计算定时器的初始值。 定时器的溢出率公式 : 1 / ov 1/f * 12 *(256 - init) (ov为溢出率,溢出频率; init 为初始值; f为时钟频率, 比如12M或者11.0592M等&#xff09…

自己开发完整项目一、登录注册功能-01

一、创建spingboot项目框架 1.首先创建一个空的项目作为父项目,之后的所有都在此基础上创建模块进行开发。 2.创建负责登录注册功能模块 二、启动项目 1.出现如下错误,代表着端口号被占用,这个时候,我们可以进行端口号的修改。 …

如何从笔记本电脑或台式电脑恢复丢失的照片和视频

意外删除或丢失笔记本电脑或 PC 上的照片和视频是一个常见问题。不用担心,在此博客中,我们解释了从笔记本电脑或 PC 恢复丢失的照片和视频的各种方法。专业的数据恢复软件,例如奇客 数据恢复工具,可以帮助用户找回丢失的文件。 提…

微信小程序uni :class不支持xxx语法

问题代码&#xff1a; <view class"cellTop"><view>{{list.payTime}}</view><view :class"payStatusClass${list.payStatus}">{{payStatusDe[list.payStatus]}}</view></view> .payStatusClass1{color: rgb(246, 122,…

传输层协议-UDP数据报

UDP协议的特点 面向数据报&#xff0c;无连接&#xff0c;不可靠&#xff0c;全双工 面向数据报&#xff1a;是指该协议在传输数据的时候使用的是数据报&#xff1b; 无连接&#xff1a;指的是发送数据不需要两个进程连接在一起&#xff0c;类似生活中我们发送短信&#xff0…

代码随想录跟练第九天——LeetCode 232.用栈实现队列、225. 用队列实现栈、20. 有效的括号、1047. 删除字符串中的所有相邻重复项

拔了智齿后&#xff0c;好久没有总结了&#xff0c;先补一点 232.用栈实现队列 力扣题目链接(opens new window) 使用栈实现队列的下列操作&#xff1a; push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- …

解锁App推广新姿势,Xinstall带你玩转投放查看

在移动互联网时代&#xff0c;App推广和运营成为了各大企业和开发者关注的焦点。然而&#xff0c;在这个过程中&#xff0c;推广者常常面临一些痛点&#xff0c;比如无法实时查看投放效果、数据不透明、难以精准定位目标用户等。这些问题不仅影响了推广效果&#xff0c;还可能导…

这些网络设备知名厂商你都不知道?白干这行了

号主&#xff1a;老杨丨11年资深网络工程师&#xff0c;更多网工提升干货&#xff0c;请关注公众号&#xff1a;网络工程师俱乐部 你们好啊&#xff0c;我的网工朋友。 信息技术的快速发展&#xff0c;网络行业已经成为推动全球经济和社会进步的重要力量之一。无论是企业还是个…

CI/CD实践(五)Jenkins Docker 自动化构建部署Node服务

微服务CI/CD实践系列&#xff1a; 微服务CI/CD实践&#xff08;一&#xff09;环境准备及虚拟机创建 微服务CI/CD实践&#xff08;二&#xff09;服务器先决准备 微服务CI/CD实践&#xff08;三&#xff09;gitlab部署及nexus3部署 微服务CI/CD实践&#xff08;四&#xff09…

Linux驱动学习之input子系统

简介 input 子系统就是管理输入的子系统&#xff0c;和pinctrl、gpio 子系统一样&#xff0c;都是 Linux 内核针对某一类设备而创建的框架。按键、鼠标、键盘、触摸屏等都属于输入设备&#xff0c;linux内核为此专门做了一个叫做input子系统的框架来处理输入事件。输入设备本…

day44——面向对象特征

一、封装 1.1 面向对象的三大特质 封装、继承、多态&#xff0c;如果问有四大特征&#xff0c;可以外加一个抽象 封装&#xff1a;将实现同一事物的所有的属性&#xff08;成员变量&#xff09;和行为&#xff08;成员函数&#xff09;封装到一个整体&#xff0c;我们称之为…

【Datawhale AI夏令营】从零上手CV竞赛Task2

文章目录 前言一、YOLO是什么&#xff1f;二、YOLO的历史三、性能指标四、 性能指标计算公式五、性能优化总结 前言 本文的Task2是对Task1的baseline代码进行优化的过程。 一、YOLO是什么&#xff1f; 首先简单介绍一下YOLO模型&#xff1a; 物体检测算法主要分为两类&#…

MSTP多实例生成树的配置

SW1配置&#xff1a; vlan batch 1 to 100 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 2 to 4094 interface GigabitEthernet0/0/2 port link-type trunk port trunk allow-pass vlan 2 to 4094 stp mode mstp //修改生成树的模式为…

【多线程】创建线程到底是多少种方法?

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. 创建线程的两种方式总结(最官方)1.1 继承 Thread 类1.2 实现 Runnable 接口1.3 优先考虑使用第二种 —— …

三. Spring Boot 当中的“容器功能” 和 “配置绑定” 的详细剖析(附+源代码流程)

三. Spring Boot 当中的“容器功能” 和 “配置绑定” 的详细剖析(附源代码流程) 文章目录 三. Spring Boot 当中的“容器功能” 和 “配置绑定” 的详细剖析(附源代码流程)1. Spring Boot 是继续支持了 Spring 当中的注解的1.2 Spring 当中的 Component&#xff0c;Controller…