【git】-初始git
一、什么是版本控制?
二、Git的安装
三、掌握Linux常用命令
四、Git基本操作
1、提交代码
2、查看历史提交
3、版本回退

一、什么是版本控制?
版本控制是一种用于记录文件或项目内容变化的系统。它通过版本标识和版本历史记录来管理不同版本,作用包括备份与恢复文件、支持团队协作开发、追踪文件变更情况。
【想象你在写一个故事,每次修改内容的时候,版本控制会帮你把之前的版本保存下来,还会给每个版本做个标记,它可以当作备份。要是你不小心把故事写坏了或者弄丢了,就能回到之前写得好的版本。要是很多人一起写这个故事(协作),它能协调大家的修改,防止混乱。比如两个人同时改一个地方,它会提醒你们商量一下怎么改。而且它会把这个故事从最开始到现在的修改过程都记录下来,你可以看看这个故事是怎么一步步变成现在这样的。
把记录放在自己电脑里(本地),放在一个大家都能访问的中心服务器上(集中式),每个人自己电脑上都有完整的记录(分布式)】
二、Git的安装
官网 Git - 安装 Git


查看自己电脑系统是多少位的,下载对应版本


按如下勾选:

注意 箭头所致会将git bash gitgui关联到鼠标右键,安装后点击鼠标右键会出现:








检查是否安装成功:
单击鼠标右键,点击git bash

显示版本信息则安装成功!
三、掌握Linux常用命令
Linux命令大全-CSDN博客
右击鼠标 点击Git Bash,可进行操作

需要注意的是:
cd操作
pwd
ls操作
创建目录【增】 mkdir
新建文件【增】touch
修改文件【改】 vi或vim
四、Git基本操作


1、提交代码
①创建一个文件夹 EG:git_biedeni
②鼠标右击 选择git bash 开启命令客户端(在哪个文件夹进入的 目录就在哪个文件夹)
③创建本地仓库 git init

运行成功后生成一个git文件夹,git 文件夹中含有

④查看本地仓库状态 git status

⑤日常开发流程模拟


再次git status,第二行提示有未追踪的文件test.py,可以用git add将要提交的内容包含进来


⑥ 提交修改至缓存区 git add
将⑤中新的修改文件test.py提交至缓存区

查看仓库状态:

⑦删除缓存区修改记录 git rm --cached

⑧提交版本 git commit 将缓存区 的修改提交到版本库
git add 将修改内容提交到缓存区-->git commit 提交至版本库

⑨ ⑧ 显示没有Author ,需要配置Git的用户信息 记录谁完成了当前提交

输出信息表明 “在 master 分支上完成了仓库的第一次提交(根提交),提交信息为 learn git。你创建了一个新文件 test.py,并在其中添加了 1 行代码。”
全部代码:
86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_
$ git init
Initialized empty Git repository in D:/learnning resourci/.git/86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_
$ ls -al
total 0
drwxr-xr-x 1 86153 197121 0 Jan 10 17:08 ./
drwxr-xr-x 1 86153 197121 0 Jan 10 17:07 ../
drwxr-xr-x 1 86153 197121 0 Jan 10 17:08 .git/86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git status
On branch masterNo commits yetnothing to commit (create/copy files and use "git add" to track)86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ touch test.py86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ vim test.py86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git status
On branch masterNo commits yetUntracked files:(use "git add <file>..." to include in what will be committed)test.pynothing added to commit but untracked files present (use "git add" to track)86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git add test.py
warning: in the working copy of 'test.py', LF will be replaced by CRLF the next time Git touches it86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git status
On branch masterNo commits yetChanges to be committed:(use "git rm --cached <file>..." to unstage)new file: test.py86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git rm --cached test.py
rm 'test.py'86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git status
On branch masterNo commits yetUntracked files:(use "git add <file>..." to include in what will be committed)test.pynothing added to commit but untracked files present (use "git add" to track)86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git add test.py
warning: in the working copy of 'test.py', LF will be replaced by CRLF the next time Git touches it86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git commit -m "learn git"
Author identity unknown*** Please tell me who you are.Rungit config --global user.email "you@example.com"git config --global user.name "Your Name"to set your account's default identity.
Omit --global to set the identity only in this repository.fatal: unable to auto-detect email address (got '86153@hhh.(none)')86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git config --global user.email 3328133482@qq.com86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git config --global user.name lxy86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git commit -m"learn git"
[master (root-commit) de3960d] learn git1 file changed, 1 insertion(+)create mode 100644 test.py86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$ git status
On branch master
nothing to commit, working tree clean86153@hhh MINGW64 /d/learnning resource-lxy/git操作/git_biedeni (master)
$
2、查看历史提交
查看所有版本信息 git log

显示更详细信息 git log --stat

直接看到某个版本具体修改内容 git log -p

简单快速的查看版本库情况 git reflog
![]()
提交了2个版本,head指针指向 learn git 2 (即为当前工作区所在版本)
3、版本回退
版本号的由来:
![]()

当前工作区为版本6
git reset --hard HEAD^ 或者git reset --hard HEAD^^ 回退至上一版回退至上一版
git reset --hard HEAD~2 回退至上上一版


可见回退至版本5
也可git reset --hard 版本号回退至指定版本

总结
内容很基础,认识了git是干什么的和一些基本的git操作,主要是掌握一些命令!熟能生巧把
相关文章:
【git】-初始git
一、什么是版本控制? 二、Git的安装 三、掌握Linux常用命令 四、Git基本操作 1、提交代码 2、查看历史提交 3、版本回退 一、什么是版本控制? 版本控制是一种用于记录文件或项目内容变化的系统。它通过版本标识和版本历史记录来管理不同版本&#…...
CSS 盒模型
盒模型 CSS盒模型是网页布局的核心概念之一,它描述了网页元素的物理结构和元素内容与周围元素之间的关系。根据W3C规范,每个HTML元素都被视为一个矩形盒子,这个盒子由以下四个部分组成: 内容区(Content areaÿ…...
[0405].第05节:搭建Redis主从架构
Redis学习大纲 一、3主3从的集群配置: 1.1.集群规划 1.分片集群需要的节点数量较多,这里我们搭建一个最小的分片集群,包含3个master节点,每个master包含一个slave节点,结构如下: 2.每组是一主一从&#x…...
6 分布式限流框架
限流的作用 在API对外互联网开放的情况下,是无法控制调用方的行为的。当遇到请求激增或者黑客攻击的情况下,会导致接口占用大量的服务器资源,使得接口响应效率的降低或者超时,更或者导致服务器宕机。 限流是指对应用服务进行限制…...
sosadmin相关命令
sosadmin命令 以下是本人翻译的官方文档,如有不对,还请指出,引用请标明出处。 原本有个对应表可以跳转的,但是CSDN的这个[](#)跳转好像不太一样,必须得用html标签,就懒得改了。 sosadmin help 用法 sosadm…...
关于大数据的基础知识(四)——大数据的意义与趋势
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于大数据的基础知识(四&a…...
【EI,Scopus检索 | 往届均已检索见刊】第四届智能系统、通信与计算机网络国际学术会议(ISCCN 2025)
重要信息: 大会官网:更多详情【论文投稿】 截稿时间:以官网信息为准 大会时间:2025年2月21-23日 接受/拒稿通知:投稿后3-5个工作日内 收录检索:EI,Scopus 出版信息: 本会议所有…...
smplx blender插件笔记
目录 liunx安装: liunx安装: pip install smplx 这个创建模型报错 SMPL_blender_addon...
【算法】移除元素
今天讲的是力扣题目的题解: 力扣题目: 72.移除元素 题目描述: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素。元素的顺序可能发生改变。然后返回 nums 中与 val 不同的元素的数量。 假设 nums 中不…...
【后端面试总结】设计一个分布式锁需要考虑哪些东西
分布式锁是我们在分布式场景中经常用到的一种技术,在后端面试中也是出镜率很高,那么我们设计分布式锁的时候应该从那几方面去考虑呢 实现分布式锁需要考虑的点 设置超时时间 设置超时时间的目的是为了避免这个场景:进程A拿了锁,…...
awr报告无法生成:常见案例与解决办法
awr报告无法生成:常见案例与解决办法 STATISTICS_LEVEL设置过低数据库打开状态不对主库隐含参数设置错误MMON子进程被SuspendSYS模式统计信息过期WRH$_SQL_PLAN表数据量太大AWR绑定变量信息收集超时撞上数据库Bug 9040676STATISTICS_LEVEL设置过低 STATISTICS_LEVEL设置为BAS…...
Hadoop 生态之 kerberos
参考链接 https://winway.github.io/2022/04/02/kerberos-ranger/ https://ieevee.com/tech/2016/06/22/ranger-2.html kerberos解决”who are you“的问题 ranger解决”what you can do“的问题 LDAP 轻型目录访问协议(英文:Lightweight Director…...
【文件I/O】文件持久化
这篇文章详细讲解的是 理解在Linux操作系统中输入/输出(I/O)编程与文件操作的关系。 在计算机编程中,输入/输出编程(I/O 编程) 是一个重要的概念,指的是通过程序与外部世界(如用户输入、文件、…...
USB学习——基本概念
文章目录 USB(Universal Serial Bus)概述USB系统的描述USB总线传输方式USB的拓扑结构 USB的连接模型USB控制器及分类USB描述符USB 端点USB枚举过程USB 四种传输类型USB 事务批量传输(Bulk)中断传输(Interrupt)等时传输(Isochronous)控制传输(Control)端点…...
python-leetcode-三数之和
15. 三数之和 - 力扣(LeetCode) class Solution:def threeSum(self, nums: List[int]) -> List[List[int]]:nums.sort() # 排序n len(nums)res []for i in range(n):# 剪枝:如果当前数 > 0,三数之和不可能为 0if nums[i]…...
springboot整合拦截器
1.首先创建拦截器类: package com.example.interceptor;import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.sp…...
B树与B+树:数据库索引的秘密武器
想象一下,你正在构建一个超级大的图书馆,里面摆满了各种各样的书籍。B树和B树就像是两种不同的图书分类和摆放方式,它们都能帮助你快速找到想要的书籍,但各有特点。 B树就像是一个传统的图书馆摆放方式: 1. 书籍摆放&…...
Lua语言中常用的字符串操作函数
string.sub(s, i, j) 功能: 截取字符串 s 中从位置 i 到位置 j 的子字符串。 local s "Hello, Lua!" print(string.sub(s, 1, 5)) -- 输出 "Hello" print(string.sub(s, 8, 11)) -- 输出 "Lua!" string.len(s) 功能:将字符串长度…...
HOW - Form 表单确认校验两种模式(以 Modal 场景为例)
目录 一、背景二、具体1. 模式一:点击确认进行校验提示2. 模式二:确认按钮依赖于表单内容实现说明 一、背景 基于react、antd form分别实现如下两种模式: 1、一个 Modal,点击确认进行校验提示2、一个 Modal,确认按钮…...
LabVIEW部署Web服务
目录 LabVIEW部署Web服务1、创建项目2、创建Web服务3、新建WebVI3.1、使用GET方法3.2、使用POST方法 4、 部署和对应URL4.1、应用程序:80804.2、本地调试:80094.3、NI Web服务器:9090(禁用) 5、测试5.1、测试GET方法5.2、测试POST方法 6、实际…...
通义千问2.5-7B惊艳案例展示:看它如何写出高质量营销文案
通义千问2.5-7B惊艳案例展示:看它如何写出高质量营销文案 1. 模型能力概览 通义千问2.5-7B-Instruct作为阿里最新发布的70亿参数指令微调模型,在文本生成领域展现出令人惊艳的能力。这款"中等体量、全能型、可商用"的模型具有以下核心优势&a…...
RTX4090D显卡性能释放:PyTorch 2.8镜像在文生视频任务中的实战表现
RTX4090D显卡性能释放:PyTorch 2.8镜像在文生视频任务中的实战表现 1. 硬件与镜像环境概览 1.1 RTX 4090D显卡的独特优势 RTX 4090D作为NVIDIA最新一代消费级旗舰显卡,在深度学习领域展现出非凡潜力。与标准版4090相比,4090D在保持相同24G…...
Open UI5 源代码解析之841:VerticalLayout.js
源代码仓库: https://github.com/SAP/openui5 源代码位置:src\sap.ui.layout\src\sap\ui\layout\VerticalLayout.js VerticalLayout 文件解析 本文围绕 VerticalLayout.js 在 OpenUI5 项目中的角色与实现展开,重点说明该控件在布局体系中的定位、元数据设计、渲染协作、…...
SagerNet数据库架构完全指南:Room与DataStore在代理工具中的最佳实践
SagerNet数据库架构完全指南:Room与DataStore在代理工具中的最佳实践 SagerNet作为Android平台上的通用代理工具链,其强大的数据库架构设计是其核心竞争力的关键。通过深入分析SagerNet的Room数据库与DataStore的完美结合,我们可以了解现代A…...
OpenClaw省钱全攻略,掌握这5招,每月少花几百块冤枉钱
手把手教你一键部署OpenClaw,连接微信、QQ、飞书、钉钉等,1分钟全搞定! 刚把OpenClaw折腾好,你可能正沉浸在AI秒回代码、自动理任务的神奇体验里,心里直呼过瘾。可还没等新鲜劲过去,一翻后台账单ÿ…...
多源数据驱动的农害预测模型
基于多源数据与集成学习的农作物病虫害预测及防控优化模型 标签:农业AI 机器学习 XGBoost LSTM Stacking SHAP 遗传算法 风险建模 一、整体技术路线概览 我们构建了一个五层递进式智能决策系统,从原始数据到最终可解释的防控建议,层层…...
超越YOLO:在RGBT-Tiny上,为什么DETR和Diffusion模型对小目标检测更有效?
超越YOLO:DETR与Diffusion模型在小目标检测中的技术突破 深夜的海上搜救任务中,热成像画面里几个像素大小的落水者身影若隐若现;城市高空无人机巡检时,监控画面中88像素的违规车辆几乎与背景融为一体。这些真实场景揭示了计算机视…...
电商剪辑师慌了!AI1 小时出 50 条视频,易元 AI 帮工厂 / 品牌日更千条素材
电商剪辑师的“铁饭碗”正被AI打破!当下电商流量竞争白热化,短视频是工厂、品牌获客转化的核心载体,日常上新、投流推广、社群分发等都需大量素材支撑。但传统人工剪辑低效高耗,3名专业剪辑师满负荷工作,日均产出不足1…...
好写作AI“期刊论文智造局”:解锁学术发表的通关秘籍
在学术的江湖里,期刊论文就像是一把把锋利的宝剑,是学者们披荆斩棘、开疆拓土的得力武器。然而,想要打造出一把称手的“宝剑”,从选题到撰写,再到格式调整,每一步都充满挑战。别愁啦!好写作AI化…...
深入解析LM2675电源管理芯片内部架构与设计原理
1. 芯片内部电路设计概述作为一名从业十年的芯片设计工程师,我经常遇到同行对芯片内部结构一知半解的情况。很多人拿到新芯片后直接翻到Datasheet的应用电路部分,按推荐设计搭建外围电路就完事。这种做法虽然能快速实现功能,却错失了深入理解…...


