Git 入门指南:从 0 到 1 掌握版本控制

Git 入门指南:从 0 到 1 掌握版本控制

🔥个人主页:Cx330🌸

❄️个人专栏:《C语言》《LeetCode刷题集》《数据结构-初阶》《C++知识分享》

《优选算法指南-必刷经典100题》《Linux操作系统》:从入门到入魔

《Git深度解析》:版本管理实战全解

🌟心向往之行必能至


🎥Cx330🌸的简介:


目录

前言:

一、先搞懂:Git 是什么?为什么要用?​

1. Git 的本质​

2. 为什么非要学 Git?​

二、第一步:安装 Git(3 分钟搞定)​

1. Windows 系统​

2.Linux系统(CentOS/Ubuntu)

2.1 CentOS版本

2.2 Ubuntu版本

三、Git 本地仓库初始化与配置

3.1 初始化

3.2 单仓库配置name与email

3.3 所有仓库配置name与email

四、Git三大核心区域:工作区、暂存区、版本库

五、Git 实战:10 分钟完成“本地→远程” 全流程

5.1 添加文件到本地仓库(工作区→暂存区→版本库)

5.2 查看历史提交文件信息

5.3 查看.git文件

结尾​


前言:

你是否有过这样的经历?改了半天的论文,不小心删掉关键段落却找不回;和同事一起做方案,每人发一个 “最终版”,最后分不清哪个是最新的;电脑重装系统,没备份的项目文件直接消失…… 这些看似小事的 “文件灾难”,其实都源于缺少一套科学的版本管理方法。​

而 Git,就是解决这些问题的 “神器”。但很多新手一听到 “命令行”“仓库”“分支” 就打退堂鼓,觉得它复杂难学。其实不然 ——Git 的核心逻辑很简单,只要掌握 “记录修改、同步内容” 的核心流程,就能应对 80% 的日常需求。​

这篇指南专为零基础者设计,没有复杂的理论堆砌,只有一步步的实操说明:从 3 分钟安装 Git,到搞懂 “工作区 / 暂存区 / 仓库” 的关系,再到完成 “本地项目推送到远程” 的全流程,甚至帮你避开新手最容易踩的坑。跟着做,你会发现:原来 Git 入门,真的没那么难。​

如果你是程序员、设计师,或是经常需要修改文件的人,一定遇到过这些问题:​

“昨天改的代码不小心删了,怎么恢复?”​“和同事一起改同一个文件,改着改着就乱了”​“想回溯到上周的文档版本,却找不到备份”​

这时候,Git 就能帮你解决所有 “版本管理” 的烦恼。今天就带大家从 0 开始,轻松入门 Git

一、先搞懂:Git 是什么?为什么要用?​

1. Git 的本质​

Git 是一款分布式版本控制系统,简单说就是:​

  • 记录文件的每一次修改(像 “时光机”,能随时回溯历史版本)​
  • 支持多人协作(每个人的修改都能有序合并,不冲突)​
  • 本地就能操作不用依赖网络,只有需要同步时才连远程仓库)​

2. 为什么非要学 Git?​

  • 避免 “文件灾难”:误删、改乱文件时,能一键恢复到之前的版本​
  • 多人协作必备:团队开发项目时,不用再发 “最终版_最终最终版_v3.docx” 这种混乱文件​
  • 职场刚需:几乎所有互联网公司都用 Git 管理代码,会 Git 是基础技能
注意:

Git仅能跟踪文本文件的改动(如代码txt文件),可以清晰的显示修改细节。对于图片,视频等二进制文件,虽然也能控制,但无法跟踪文件的变化,只能看到内存大小的变化

二、第一步:安装 Git(3 分钟搞定)​

Git 支持 WindowsLinux,按系统选对应的方法:​

1. Windows 系统​

  1. 打开Git 官网下载页,自动下载适配版本​
  2. 双击安装包,一路 “Next”(默认选项足够用,不用改)​
  3. 安装完成后,右键点击桌面,出现 “Git Bash Here” 就说明成功了(点击打开,这是 Git 的命令行工具)​

2.Linux系统(CentOS/Ubuntu)

2.1 CentOS版本
# 1. 安装 Git,普通账户需要sudo提权,root不用 [root@VM-4-4-centos ~]# (sudo) yum -y install git # 2. 验证安装是否成功以及查看Git版本(显示版本号即成功) [root@VM-4-4-centos ~]# git --version 
2.2 Ubuntu版本
# 1. 安装 Git(系统会提示安装命令,直接执行即可) sudo apt-get install git -y # 2. 验证安装 git --version 

三、Git 本地仓库初始化与配置

3.1 初始化

创建仓库(目录):

mkdir gitcode

初始化仓库

git init

查看 .git

注意事项:

.git文件里面的内容不能删改!

3.2 单仓库配置name与email

配置name:

git config user.name "姓名"

配置email:

git config user.email "邮箱(qq.com)"

查看配置:

git config -l

重置name与email:

git config --unset user.name/email

3.3 所有仓库配置name与email

配置name:

git config --global user.name "姓名"

配置email:

git config --global user.email "邮箱(qq.com)"

查看配置:

git config -l

发现:user.name和user.email跑到了前面,就说明配置成功了

重置name与email:

git config --global --unset user.name/email

说明:

一台服务器上可以创建多个本地仓库,加--global选项,目的是在当前机器的所有git仓库生效


、Git三大核心区域:工作区、暂存区、版本库

新手学 Git 最容易懵的是 “文件存在哪里”,记住这 3 个区域,逻辑就通了:

 

左侧为工作区,右侧为版本库。Git 的版本库中存了很多东西,其中最重要的就是暂存区。在创建 Git 版本库时,Git会为我们自动创建一个唯一的 master 分支,以及指向 master 的一个指针叫 HEAD。当对工作区新增或修改或删除文件执行 git add 命令时,暂存区目录树的文件索引会被更新(如图所示).当执行提交操作 git commit 时,master分支会做相应的更新,可以简单理解为暂存区的目录树会被真正写到版本库中

简单流程:在工作区改文件 → 把修改加到暂存区 → 提交到本地仓库 → 推送到远程仓库

区域作用通俗比喻
工作区你正在编辑的文件所在的文件夹(比如桌面的 “我的项目” 文件夹)你的 “草稿纸”
暂存区临时存放要提交的修改(选一部分文件先 “暂存”,不是所有修改都要提交)待提交的 “购物车”
版本库存放在你电脑里的完整版本历史(.git文件夹,看不见但很重要)你家里的 “档案柜”

五、Git 实战:10 分钟完成“本地→远程” 全流程

5.1 添加文件到本地仓库(工作区→暂存区→版本库)

文件会先在 “暂存区” 暂存,支持单个文件、多个文件或目录的批量操作,具体示例如下:
场景1:单个文件添加

  1. 首先在该路径下创建一个文件例如:touch ReadMe
  2. 在文件里面添加内容vim ReadMe例如:"Hello git"
  3. 将文件add到暂存区:git add ReadMe
  4. 将文件提交到版本库:git commit -m "add my first file"(注:引号里面的内容不可以随意乱填,一定要描述相关内容)
yhr@VM-24-15-ubuntu:~/gitcode$ cat ReadMe Hello git yhr@VM-24-15-ubuntu:~/gitcode$ git add ReadMe yhr@VM-24-15-ubuntu:~/gitcode$ git commit -m "add first file" [master (root-commit) c991930] add first file 1 file changed, 1 insertion(+) create mode 100644 ReadMe 

提交成功以后会显示:1 file changed, 1 insertion(+)表示一个文件被改变(修改),新增加了1行内容

场景2:批量提交多个文件

  1. 再在当前路径下新建 3 个文件:touch file1 file2 file3
  2. 分多次添加到暂存区:git add file1 file2 file3(或用git add .添加当前目录所有文件)
  3. 一次性提交到版本库:git commit -m "add 3 file"
yhr@VM-24-15-ubuntu:~/gitcode$ touch file1 file2 file3 yhr@VM-24-15-ubuntu:~/gitcode$ la file1 file2 file3 .git ReadMe yhr@VM-24-15-ubuntu:~/gitcode$ git add file1 yhr@VM-24-15-ubuntu:~/gitcode$ git add file2 file3 yhr@VM-24-15-ubuntu:~/gitcode$ git commit -m "add 3 file" [master 746b339] add 3 file 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 file1 create mode 100644 file2 create mode 100644 file3 

5.2 查看历史提交文件信息

查看所有提交记录命令: git log

  1. 查看完整的历史文件信息:git log显示作者,提交时间,提交说明,和commit id(每个commit都有对应的版本号)
  2. 简介版表示: git log --pretty=oneline一行是一个版本以及对应的commit id

5.3 查看.git文件

我们tree .git/ 看一下git的结构

yhr@VM-24-15-ubuntu:~/gitcode$ tree .git/ .git/ ├── branches ├── COMMIT_EDITMSG ├── config ├── description ├── HEAD ├── hooks │ ├── applypatch-msg.sample │ ├── commit-msg.sample | ├── fsmonitor-watchman.sample │ ├── post-update.sample │ ├── pre-applypatch.sample │ ├── pre-commit.sample │ ├── pre-merge-commit.sample │ ├── prepare-commit-msg.sample │ ├── pre-push.sample │ ├── pre-rebase.sample │ ├── pre-receive.sample │ ├── push-to-checkout.sample │ └── update.sample ├── index ├── info │ └── exclude ├── logs │ ├── HEAD │ └── refs │ └── heads │ └── master ├── objects │ ├── 0d │ │ └── ec2239efc0bbfabe4078f5357705ca93b5475e │ ├── 74 │ │ └── 6b339d3058dcf6ea9889b3893c12f9be947a4c │ ├── c9 │ │ └── 919304ee67dc00138cce7659abc2e2d2ea051c │ ├── df │ │ └── 0c1275ea442bead2585c5e398d2dda0b3ec069 │ ├── e1 │ │ └── b507e8332c7e00e1a5dfef2d713279fb380c07 │ ├── e6 │ │ └── 9de29bb2d1d6434b8b29ae775ad8c2e48c5391 │ ├── info │ └── pack └── refs ├── heads │ └── master └── tags 18 directories, 28 files 

注意:

我们观察可以发现有 index ,我们 add 后的文件都在这个index暂存区存放 HEAD 就是我们默认指向 master 分支的指针
yhr@VM-24-15-ubuntu:~/gitcode$ cat .git/HEAD ref: refs/heads/master

我们来看一下master分支:

yhr@VM-24-15-ubuntu:~/gitcode$ cat .git/refs/heads/master 746b339d3058dcf6ea9889b3893c12f9be947a4c 

这一串数字是什么呢?

其实就是我们刚刚最近一次commit的id

objects为Git的对象仓库,里面包含了创建的各种版本库的对象及内容。当执行 git add 命令时,暂存区的目录树被更新,同时工作区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,就位于".git/objects"目录下,让我们来看看这些对象有何用处

查看版本库对象的内容:git cat-file -p (commit id)

yhr@VM-24-15-ubuntu:~/gitcode$ git cat-file -p 746b339d3058dcf6ea9889b3893c12f9be947a4c tree df0c1275ea442bead2585c5e398d2dda0b3ec069 parent c9919304ee67dc00138cce7659abc2e2d2ea051c author yhr <[email protected]> 1764737022 +0800 committer yhr <[email protected]> 1764737022 +0800 add 3 file 

可以看到这是我们最近一次的提交

我们可以发现tree后面还跟一堆数字,这是什么呢?我们再来打印出来看一下:

yhr@VM-24-15-ubuntu:~/gitcode$ git cat-file -p df0c1275ea442bead2585c5e398d2dda0b3ec069 100644 blob 0dec2239efc0bbfabe4078f5357705ca93b5475e ReadMe 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 file1 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 file2 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 file3 

我们在add ReadMe文件之前在里面写了一段代码,我们在来打印一下0dec2239efc0bbfabe4078f5357705ca93b5475e

yhr@VM-24-15-ubuntu:~/gitcode$ git cat-file -p 0dec2239efc0bbfabe4078f5357705ca93b5475e Hello git 

我们可以发现,我们写的代码打印出来了


结尾​

看到这里,你已经掌握了 Git 的核心入门知识 —— 从安装到实战,从避坑到基本协作,这些内容足以帮你告别 “文件混乱” 的烦恼。​

可能有人会说 “记不住命令”,但其实不用死记:不确定时回头看 “实战流程”,多试两次 “新建文件→提交→推远程”,命令就会慢慢变成肌肉记忆。就像学开车,一开始记不清挡位,但开多了自然就熟练了。​

现在,不妨打开你的电脑,跟着 “10 分钟实战” 步骤走一遍 —— 当你 Gitee 上看到自己推送的文件时,会发现:Git 入门,真的只是 “动手做一次” 的事儿。如果后续遇到新问题,也可以回头翻看这篇指南,或者尝试进阶内容。版本管理的大门已经为你打开,接下来就交给实践吧!

Read more

GitHub Copilot 调用第三方模型API

GitHub Copilot 调用第三方模型API

一、说明 OAI Compatible Provider for Copilot 的作用是:把 Copilot/Copilot Chat 发出的“类似 OpenAI API 的请求”,转发到指定的 OpenAI-Compatible 服务端(例如 ModelScope 推理网关、自建的兼容网关等)。 ⚠️ Warning 登录 GitHub Copilot 的账号一定要是非组织方式开通 pro 会员的,不然无法管理模型。 推荐直接用免费的free账号登录即可。 二、插件安装 在 VS Code 扩展市场安装并启用: * GitHub Copilot * GitHub Copilot Chat * OAI Compatible Provider for Copilot (johnny-zhao.

By Ne0inhk
openclaw使用llama.cpp 本地大模型部署教程

openclaw使用llama.cpp 本地大模型部署教程

openclaw使用llama.cpp 本地大模型部署教程 本教程基于实际操作整理,适用于 Windows WSL2 环境 全程使用 openclaw 帮我搭建大模型 一、环境准备 1. 硬件要求 显卡推荐模型显存占用GTX 1050 Ti (4GB)Qwen2.5-3B Q4~2.5GBRTX 4060 (8GB)Qwen2.5-7B Q4~5GBRTX 4090 (24GB)Qwen2.5-32B Q4~20GB 2. 安装编译工具(WSL Ubuntu) sudoapt update sudoaptinstall -y cmake build-essential 二、下载和编译 llama.cpp

By Ne0inhk

LM Studio模型加载全攻略:从格式识别到本地部署(支持LLaMA/Mistral等主流模型)

LM Studio模型加载全攻略:从格式识别到本地部署(支持LLaMA/Mistral等主流模型) 在开源大模型生态中,本地部署已成为开发者探索AI能力的重要方式。LM Studio作为一款轻量级模型运行环境,以其简洁的交互界面和对多种架构的支持,逐渐成为个人开发者的首选工具。本文将深入剖析模型加载的全流程,从文件格式解析到实战部署技巧,帮助您避开常见陷阱,高效运行各类主流大模型。 1. 模型格式深度解析 LM Studio对模型格式的支持并非一刀切,不同格式在性能、兼容性和功能完整性上存在显著差异。当前主流格式可分为三类: GGUF格式 作为llama.cpp生态的专有格式,GGUF已成为LM Studio的黄金标准。其优势体现在: * 量化支持:内置从2bit到8bit的多级量化方案(如q4_K_M表示4bit中精度量化) * 跨平台一致性:同一模型文件可在Windows/macOS/Linux无缝运行 * 内存映射:支持部分加载,降低内存占用 GPTQ格式 基于TensorRT的量化方案,特点包括: * 仅部分架构支持(如LLaMA-1/2、Mistral

By Ne0inhk
开源scRNA Tools 2.|利用 BayesPrism 剔除微环境背景并识别肿瘤亚克隆特征

开源scRNA Tools 2.|利用 BayesPrism 剔除微环境背景并识别肿瘤亚克隆特征

文章目录 * 介绍 * 适用条件 * 输入数据与功能输出 * 2个Demo * 使用 BayesPrism 进行恶性细胞表达的嵌入学习 * 使用 BayesPrism 进行Bulk RNA-seq 反卷积 介绍 BayesPrism(Bayesian cell Proportion Reconstruction Inferred using Statistical Marginalization)是一款基于全贝叶斯推断的R包,专为解析**肿瘤微环境(TME)的复杂性而设计。该工具旨在通过统计边缘化方法,利用单细胞RNA-seq(scRNA-seq)数据作为先验参考,从大量RNA-seq(bulk RNA-seq)**样本中联合估计细胞类型的组成比例以及特定细胞类型的基因表达谱。 BayesPrism的核心包含两个模块:去卷积模块(Deconvolution module)和嵌入学习模块(Embedding learning module)。去卷积模块依据scRNA-seq提供的细胞类型特异性表达谱,推断bulk数据中的细胞组分及表达;而嵌入学习模块则使

By Ne0inhk