[Git] 初识 Git 与安装入门

[Git] 初识 Git 与安装入门

告别文件噩梦:初识 Git 与安装入门

嘿,朋友!不知道你是不是也遇到过这样的情况:你在写一份重要的文档、报告,或者更常见的,一段代码时,为了安全起见,怕改错了回不去,或者想保留不同阶段的版本,于是不得不像这样保存文件:

  • “报告-v1.doc”
  • “报告-v2.doc”
  • “报告-最终版.doc”
  • “报告-最终版-最终的最终版.doc”
  • “报告-领导说再改改版.doc”

是不是看着就头大?电脑里塞满了各种名字相似的文件,时间一长,你根本分不清“最终版”和“最终的最终版”到底差在哪里,想要找回某个阶段的内容更是难上加难。

文档如此,我们辛辛苦苦写出来的代码更是这样!如果代码没有版本管理,那简直是一场灾难,特别是当需要和别人协作的时候。

别怕!解决这个问题的“神器”来了——它就是版本控制系统。

什么是版本控制系统?

想象一下,版本控制系统就像一个超级详细的“文件时光机”或者“改动日志本”。它的主要工作就是帮你记录下文件的每一次变化,保存每一个重要的版本。这样一来:

  1. 你可以随时回到过去: 无论你对文件做了什么修改,哪怕删除了重要的内容,都可以轻松回到之前的任意一个保存过的状态。
  2. 你可以清楚地看到“历史”: 它会告诉你,在哪个时间点,文件的哪一行被修改了,是增加了内容还是删除了内容。
  3. 多人协作更方便: 多个开发者可以安全地在同一个项目上工作,版本控制系统会帮助协调大家的修改,避免互相覆盖。

简单来说,版本控制系统就是一个帮你管理项目文件历史记录的系统。

Git:目前最主流的版本控制系统

在众多的版本控制系统中,Git 绝对是目前最流行、最强大也最受开发者欢迎的一个。

Git 不仅可以管理我们写程序时产生的源代码文件(这可是它的拿手好戏!),理论上它也能管理电脑上的其他任何格式的文件,比如 Word 文档(.doc)、Excel 表格(.xlsx)、CAD 图纸(.dwg)等等。

但是,这里有一个非常重要的注意事项,特别是对于新手朋友:

Git 更擅长管理“文本文件”!

Git(以及大多数版本控制系统)最强大的地方在于,它能跟踪文本文件(比如 .txt 文件、网页文件 .html、所有的代码文件 .py, .java, .c 等等)内部的具体改动。它可以告诉你,在第5行你增加了“Hello World”,在第10行你删除了一个变量名。它能精确到行甚至字。

而对于图片、视频、压缩包这类“二进制文件”,Git 也能帮你管理(记录下这些文件存在过,以及它们的大小、修改时间),但它无法知晓这些文件“内部”到底做了什么改动。它只能告诉你,“哦,这个图片文件从 100KB 变成了 120KB”,但图片具体是哪个像素被修改了,或者视频里增加了哪一帧,Git 是不知道也无法显示的。

理解这一点很重要!所以,Git 是管理代码项目的首选工具,因为它能让你清晰地看到代码的每一次细微变动。

准备好了吗?安装 Git!

Git 是一个开源的工具,它最初是在 Linux 系统上诞生的,但现在已经非常成熟,可以在 Linux、macOS 和 Windows 这三大主流操作系统上完美运行。

下面我们来看看如何在 Linux 系统(CentOS 和 Ubuntu)上安装 Git。

在 Linux 上安装 Git

不同的 Linux 发行版使用不同的包管理工具来安装软件。这里我们介绍 CentOS 和 Ubuntu 这两个常见的系统。

1. Linux - CentOS

如果你使用的是 CentOS 系统(比如 CentOS 7 或 8),安装 Git 非常简单。

首先,你可以打开终端,输入 git 命令,看看系统有没有自带 Git:

$ git

如果看到类似这样的输出:

-bash: git: command not found 

别担心,这意味着 Git 还没有安装。我们可以使用 yum 包管理器来安装它。

在终端输入以下命令来安装 Git:

sudo yum -y installgit
  • sudo:以管理员权限运行命令。
  • yum:CentOS 的包管理器。
  • -y:表示在安装过程中,所有需要确认的地方都自动选择“是”,让安装更顺畅。
  • install git:告诉 yum 安装 Git 软件包。

安装完成后,你可以再次输入命令来检查 Git 的版本,确认是否安装成功:

git --version 

如果安装成功,会显示类似 git version 2.xx.x 的版本号信息。

2. Linux - Ubuntu

如果你使用的是 Ubuntu 系统(比如 Ubuntu 20.04 或更高版本),安装 Git 同样很简单。

和 CentOS 类似,先在终端输入 git 命令,看看有没有安装:

$ git

如果系统提示类似这样的信息:

Command 'git' not found, but can be installed with: sudo apt install git 

这表示 Git 未安装,并且系统很友好地告诉了你安装命令。

使用 apt-get 包管理器来安装 Git:

sudoapt-getinstallgit -y 
  • sudo:以管理员权限运行命令。
  • apt-get:Ubuntu 的包管理器。
  • install git:告诉 apt-get 安装 Git 软件包。
  • -y:自动确认安装过程中的提示。

安装完成后,同样使用以下命令来查看 Git 的版本,确认安装成功:

git --version 

你会看到 Git 的版本号信息,恭喜你,Git 安装成功了!

Windows 和 macOS 用户怎么办?

虽然这篇博客只介绍了 Linux 的安装,但 Git 在 Windows 和 macOS 上的安装也非常方便。

  • Windows 用户可以去 Git 官网下载安装程序(https://git-scm.com/downloads),像安装普通软件一样双击安装即可。
  • macOS 用户通常可以通过 Homebrew (https://brew.sh/) 这个包管理器来安装,命令是 brew install git;或者直接下载官方安装包。

结语

现在,你已经了解了为什么我们需要版本控制系统,以及 Git 是什么,并且学会了在 Linux 系统上安装它。

安装 Git 只是第一步,接下来更精彩的是学习如何使用 Git 来管理你的代码项目,比如如何保存你的改动(提交/commit)、如何查看历史记录、如何在不同版本间切换等等。

希望这篇入门文章对你有所帮助!赶快安装 Git,开始你的版本控制之旅吧!后面的文章,我们会进一步探讨 Git 的基本使用命令。

Read more

告别复杂查询性能噩梦:一文读懂连接条件下推优化

告别复杂查询性能噩梦:一文读懂连接条件下推优化

摘要:金仓数据库(KingbaseES)的「基于代价的连接条件下推」技术解决了复杂SQL查询在生产环境中的性能瓶颈问题。该技术通过智能决策框架,先进行安全性检查确保语义等价,再基于代价模型评估下推收益,将连接条件智能下推到子查询中提前过滤数据。测试显示,简单场景性能提升600倍,复杂嵌套查询提升超4500倍,执行时间从秒级降至毫秒级。这项技术结合了语义安全和代价评估,有效应对现代复杂SQL的性能挑战,体现了国产数据库在深度优化方面的技术实力。 告别复杂查询性能噩梦:一文读懂连接条件下推优化 你是否遇到过这样的场景:一个在测试环境运行飞快的复杂SQL,一到生产环境就“卡死”?检查执行计划后,发现罪魁祸首往往是一个生成了巨大中间结果集的子查询,导致后续操作全部陷入性能泥潭。 针对这一经典性能瓶颈,连接条件下推 是一项关键的数据库优化技术。本文将以金仓数据库(KingbaseES)的实现为例,深入解析其原理,并通过多个代码场景展示其如何将查询性能提升数个数量级。 一、 性能瓶颈的根源:失效的谓词过滤 在金融、政务等复杂业务系统中,出于逻辑清晰和维护方便的考虑,开发人员常会编写多

By Ne0inhk

ctfhub——文件上传(无验证,前端验证,.htaccess,MIME绕过,00截断,双写后缀,文件头检测)

ctfhub 文件上传 无验证 上传一句话木马 访问成功显示666 连接蚁剑 得到flag ctfhub{149641ca197038f11067df1a} 前端验证 不能直接上传 js前端验证,过滤在前端 所以我们可以通过直接修改前端js文件或BP改包的方式绕过 这里我们用BP 打开BP上传图片文件 改包并上穿 尝试访问成功 连接蚁剑 得到flag ctfhub{1856388f624ce5d680835d50} .htaccess 1.知识点 (1)先简单介绍一下.htaccess文件: .htaccess文件 (或者"分布式配置文件"),全称是Hypertext Access(超文本入口)。 它提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。 作为用户,所能使用的命令受到限制。 管理员可以通过Apache的AllowOverride指令来设置。 .htaccess文件是用于apache服务器下的控制文件访问的配置文件,因此Ng

By Ne0inhk
Android 蓝牙 BLE 扫描 Native 层架构与扫描流程剖析

Android 蓝牙 BLE 扫描 Native 层架构与扫描流程剖析

博主简介 byte轻骑兵,现就职于国内知名科技企业,专注于嵌入式系统研发,深耕 Android、Linux、RTOS、通信协议、AIoT、物联网及 C/C++ 等领域。乐于技术分享与交流,欢迎关注互动! 📌 主页与联系方式ZEEKLOG:https://blog.ZEEKLOG.net/weixin_37800531知乎:https://www.zhihu.com/people/38-72-36-20-51微信公众号:嵌入式硬核研究所邮箱:[email protected](技术咨询或合作请备注需求) ⚠️ 版权声明 本文为原创内容,未经授权禁止转载。商业合作或内容授权请联系邮箱并备注来意。 本文基于 Android 蓝牙源码中 BLE 扫描相关的 Native 层代码,以scanInitializeNative为入口,系统梳理 BLE 扫描从 JNI

By Ne0inhk
Flutter 组件 spinify 适配鸿蒙 HarmonyOS 实战:实时消息管道,构建全场景高性能 WebSocket 长连接架构

Flutter 组件 spinify 适配鸿蒙 HarmonyOS 实战:实时消息管道,构建全场景高性能 WebSocket 长连接架构

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 spinify 适配鸿蒙 HarmonyOS 实战:实时消息管道,构建全场景高性能 WebSocket 长连接架构 前言 在鸿蒙(OpenHarmony)生态迈向万物互联、涉及高频实时交互、流式数据同步或多人协同编辑的场景下,如何建立一套稳定、高效且具备自动愈合能力的长连接通道,已成为提升应用实时性体验的“关键枢轴”。在鸿蒙设备这类强调分布式协同与严苛能效管理的移动终端上,如果直接使用原生的 WebSocket 进行裸奔(Bare Metal)开发,由于由于缺乏完善的心跳机制、重连策略与频道管理,极易由于由于网络波动导致连接频繁断档,进而引发业务状态的不一致。 我们需要一种能够深度封装协议细节、支持大规模并发频道订阅且具备毫秒级重连恢复能力的实时通讯引擎。 spinify 为 Flutter 开发者提供了与 Centrifugo(高性能实时消息服务器)交互的高级客户端。它支持全双工通信、自动重连计数与消息序列确认(ACK)。在适配到鸿

By Ne0inhk