进一步了解git

1、什么是集中式?什么是分布式?

  • SVN(集中式)

    • 单一中央仓库所有代码和历史版本集中存储在中央服务器,用户本地仅保存当前工作副本。

    • 强依赖网络:提交、查看历史等操作需实时连接服务器,离线环境下功能受限。

  • Git(分布式)

    • 全量本地仓库:每个用户的本地都是一个完整的仓库,包含全部代码和历史记录。

    • 去中心化:无需实时连接中央服务器,大部分操作(如提交、分支)可在本地完成,适合离线工作。

2、什么是版本库?

版本库又名仓库(Repository),你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”

git init
#命令把这个目录变成Git可以管理的仓库:

(1)把文件添加到版本库

版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”

(2)图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道

(3)不幸的是,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的

3、通过命令版本管理

git add file1.txt //将工作区file1.txt的改动暂存到「暂存区」
git add . //将工作区所有的改动暂存到「暂存区」
git commit -m '更改日志'#暂存区的所有内容提交到当前分支。
git log #查看所有提交记录
git log --pretty=oneline #加上--pretty=oneline参数,输出更简洁,少了时间和作者git reflog #显示所有操作记录,包括“丢失”提交,而git log 不显示被 reset 或 rebase 丢弃的提交
git status #查看分支当前的一个状态

 可以看到你当前在哪个分支,工作区修改了哪些文件没有提交

如果有新增文件,没有add过的话文件没被 Git 跟踪,这样的话文件的话状态变成 Untracked,

如果文件已被 Git 跟踪(即之前提交过该文件,未删除或重命名)的话可以使用 git commit -a直接提交,跳过git add 

这个文件中 ervev没有被追踪过

git reset --hard 2e15d67a94a869607a3ba35bca1bd4188af72f66
#reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本git checkout -- readme.txt
# 可以丢弃工作区的修改:

 两个命令都是回退,reset

这里解释两个词的含义,

HEAD:在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

--hard--hard会回退到上个版本的已提交状态

--soft会回退到指定版本的未提交状态

--mixed会回退到指定版本已添加但未提交的状态

通过回退操作之后,回退到了2f66版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本怎么办?找不到新版本的commit id怎么办?答案是用git reflog可以查看到所有的记录

git diff HEAD #查看当前工作去与版本库里面的区别
git diff HEAD -- readme.txt 或者查看文件readme当前工作区与版本库里面的区别

bug分支

git stash
#当你接到一个修复一个代号101的bug的任务时,很自然地,你想创建一个分支issue-101来修复它,但是,等等,当前正在dev上进行的工作还没有提交
#Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:git stash list
#git stash list命令看看 隐藏起来的工作区域git stash apply:恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除git stash pop:恢复的同时把stash内容也删了:

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

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

相关文章

一、react18+项目初始化

npx create-rect-app 项目名称配置antd design mobile // 安装 npm install --save antd-mobile // 在文件中直接引入使用 import { Button } from antd-mobile <Button></Button>更改webpack配置 // 1.安装必要的包 npm install craco --save-dev // 2.修改pack…

Azure 资源清单

Azure 资源清单 作用前置条件安装PowerShell 7.0验证 Azure资源清单安装配置如果有旧版本&#xff0c;导致新模块安装不上&#xff0c;进行强制安装 PowerShell 登录到 Azure基本命令输出详细信息效果图展示 作用 官方文档&#xff1a;https://github.com/microsoft/ARI?tabr…

S11的含义-信号完整性分析

S11的含义: PCB上的互连结构是线性无源的&#xff0c;在传输信号时激励源只有一个&#xff0c;即驱动器发出的信号。如果正弦信号从端口1进入&#xff0c;根据S11定义&#xff0c;S11表示端口1出来的正弦信号和端口1进入的正弦信号的比值。工程上通常把S11称为回波损耗(Return …

基于OpenCv(开源计算机视觉库)的图像旋转匹配

OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库&#xff0c;具有跨平台特性&#xff0c;广泛应用于工业检测、医疗影像分析、自动驾驶、无人机、机器人视觉等多个领域。 本项目解决了图像模板匹配时的旋转问题。传…

Elasticsearch Open Inference API 新增对 Cohere 的 Rerank 3 模型支持

作者&#xff1a;来自 Elastic Serena Chou 及 Max Hniebergall 了解 Cohere reranking&#xff0c;如何将 Cohere 的 Rerank 3 模型与 Elasticsearch 的 open inference API 一起使用&#xff0c;以及 Elastic 在语义 reranking 方面的路线图。 注&#xff1a;原文在 2024 年 …

九日集训第六天

目录 两个数对之间最大的乘积差 三角形的最大周长 数组拆分 救生艇 摆动排序|| 分发饼干 最少操作使数组递增 使数组唯一的最小增量 有效三角形的个数 两个数对之间最大的乘积差 class Solution { public:int maxProductDifference(vector<int>& nums) {so…

【软件工程】Waitress + Nginx 部署 Python Web 服务

下面是完整的 Windows 系统部署方案,使用 Waitress 作为 WSGI 服务器运行 Python 后端,Nginx 作为反向代理同时提供前端服务: 项目结构 text 复制 下载 myapp/ ├── backend/ # Python后端 │ ├── app.py # Flask应用入口 │ ├──…

JS数据类型检测方法总结

在 JavaScript 中&#xff0c;数据类型检测是开发中的常见需求。以下是主要检测方法及其优缺点&#xff1a; 1. typeof 操作符 最基础的检测方式&#xff0c;返回类型字符串&#xff1a; typeof 42; // "number" typeof "hello"; // &qu…

AEO:从搜索引擎到答案引擎,AI时代搜索优化的新战场

在 ChatGPT、DeepSeek、Google SGE 等生成式AI崛起的时代&#xff0c;搜索正在经历一场根本性变革&#xff1a; 过去&#xff1a;搜索引擎优化&#xff08;SEO&#xff09; 现在&#xff1a;答案引擎优化&#xff08;AEO&#xff09; 当搜索结果开始由AI直接生成“答案”而非…

搭建Node.js服务器

1.基础HTTP服务器: 添加了路由处理添加了404错误处理添加了服务器错误监听 2.静态资源服务器: 使用异步文件操作支持目录自动索引(默认加载 index.html)自动检测文件类型并设置正确Content-Type更完善的错误处理 3.处理GET请求参数 提供了一个HTML表单用于测试使用url模块…

Linux grep 命令

grep 是 Linux/Unix 系统中用于文本搜索的强大工具&#xff0c;支持基于正则表达式的模式匹配。以下是其详细用法及实际应用示例&#xff1a; 基本语法 grep [选项] 模式 [文件...]模式&#xff1a;要搜索的字符串或正则表达式。文件&#xff1a;可以是单个文件或多个文件&…

oracle 11g通过rman做备份和还原

ORACLE RMAN增量备份完整恢复测试 1.创建测试环境: 1.1.创建测试表空间 SQL> create tablespace tablespace1 datafile ‘/data/u01/app/oracle/oradata/orcl/tablespace1.dbf’ size 10m; SQL> 1.2.创建测试用户并指定为默认表空间: SQL> create user user1 iden…

为什么TCP有粘包问题,而UDP没有

TCP粘包问题源于其面向字节流的设计&#xff0c;而UDP无此问题因其基于数据报的传输机制。 &#x1f50d; 一、TCP粘包问题的原因 字节流传输特性 TCP将数据视为连续的字节流&#xff0c;而非独立的消息包。发送端多次写入的小数据可能被合并为一个TCP段发送&#xff1b;接收端…

ELM:Embodied Understanding of Driving Scenarios

1. ELM 的创新点与核心思路 ELM 的核心在于 “具身理解”(Embodied Understanding),即通过常识与环境交互并进行推理,这一理念适用于自动驾驶车辆、机器人和无人机等多种应用场景。具身智能体(Embodied Agent)需具备四大核心能力:首先,它能够描述周围环境,对交通物体的…

实景VR知识科普

实景VR的定义与技术特点 实景VR&#xff0c;即基于真实场景的虚拟现实技术&#xff0c;是通过计算机生成的三维环境&#xff0c;旨在模拟并再现真实世界场景。用户佩戴VR设备&#xff08;如VR头盔、手柄等&#xff09;后&#xff0c;能够沉浸在一个高度仿真的虚拟环境中&#…

CppCon 2016 学习:ITERATOR HAIKU

这组幻灯片讲解了 C 中**范围&#xff08;Ranges&#xff09;和迭代器&#xff08;Iterators&#xff09;**的核心概念&#xff0c;特别是 C14 标准定义的五种迭代器类别&#xff0c;以及范围的基本使用方式。我帮你理个思路&#xff1a; 1. RANGE-SEQUENCE: 元素范围&#xf…

开源飞控fmt软件在环仿真环境搭建

tags: 飞控 fmt开发环境搭建 fmt是国产开源飞控&#xff0c;特点是支持基于模型设计&#xff08;基于simulink仿真&#xff09;&#xff0c;源码结构目录较清晰&#xff0c;项目体积较小。 此项目操作系统选择的是国产实时操作系统rt-thread&#xff0c;也是开源项目。&#…

如何通过AI测试平台实现自动化缺陷检测和优化

在数字化转型加速的今天&#xff0c;软件质量保证已成为企业竞争力的关键要素之一。传统的手工测试方法面临着效率低下、成本高昂和覆盖面有限等挑战&#xff0c;而AI技术的融入为软件测试领域带来了革命性的变化。本文将深入探讨如何构建一个完整的AI测试平台&#xff0c;实现…

使用JeecgBoot配置

Jeecg 使用方法 本文以在环境配置好的前提下进行讲解 如果不会配置环境 可在billbill网站的Jeecg官网搜索环境配置 第一步 打开redis&#xff0c;redis是一个服务&#xff0c;需要用命令行打开 且命令行不能关 不能实现一劳永逸效果 每次关闭都得重新打开一次。 第二步 启动j…

NodeJS:版本及对应时间并对应的npm版本

versionltsrelease dateenginenpmnode下载更新日志文档Node.js 24.0.1✅2025-05-0813.61--下载更新日志文档Node.js 22.12.0✅2024-12-03---下载更新日志文档Node.js 21.2.0 2023-11-1411.8.172.1710.2.3120下载更新日志文档Node.js 20.10.0✅2023-11-2211.3.244.810.2.3115下载…