当前位置: 首页 > news >正文

Git 从入门到实战

Git 从入门到实战(分布式版本控制完全指南)

本文系统讲解 Git 的诞生背景、核心概念、本地操作、远程协作、分支管理、标签及 VS Code 集成,涵盖从零基础到团队协作的全流程。所有命令基于 Git Bash 环境,示例清晰可直接运行。


一、Git 概述

业务场景:团队协作开发、代码版本管理、发布回滚。
Web后端重要性:⭐⭐⭐⭐⭐(核心技能,所有项目必用)
面试标注:★★★★(高频,特别是分布式概念和常用命令)

1.1 【What】是什么

Git是一个开源的分布式版本控制系统,由 Linux 创始人林纳斯·托瓦兹(Linus Torvalds)于 2005 年开发,最初用于管理 Linux 内核源码。

  • 版本控制:记录一个文件或一组文件随时间变化的历史,以便日后查阅特定版本、对比差异、恢复旧版。
  • 分布式:每个开发者的本地机器上都拥有完整的版本库(包括完整的历史记录),不依赖中央服务器即可进行版本管理。

生活化比喻
版本控制就像写论文时的“修改记录”——你每次修改都保存一份副本,并写上“初稿”“导师修改版”“终稿”。Git 自动帮你做这件事,而且每个人都有自己的完整副本(分布式),不像传统方式只有老师手上有唯一原稿(集中式)。

1.2 【Why】为什么需要 Git

  • 没有版本控制:文件靠复制粘贴备份,容易混淆、丢失历史、难以协作。
  • 集中式(如 SVN):只有中央服务器有完整历史,网络中断无法提交,单点故障风险高。
  • 分布式优势
    • 本地即可提交、查看历史、创建分支,速度极快。
    • 不依赖网络,离线也能工作。
    • 每个克隆都是完整备份,服务器挂了也能恢复。

面试题:Git 和 SVN 的主要区别?
:Git 是分布式,每个本地都有完整版本库,支持离线提交和分支管理;SVN 是集中式,所有历史存于中央服务器,必须联网操作,分支管理较笨重。


二、Git 安装与配置

业务场景:新电脑上手第一步。
Web后端重要性:⭐⭐⭐⭐⭐
面试标注:★(操作题,会装即可)

2.1 安装 Git

  • 官网下载:https://git-scm.com/
  • Windows:下载.exe安装包,一直“下一步”完成。
  • 安装后验证:git --version(如git version 2.37.3.windows.1

2.2 配置用户信息(必须)

每一个 Git 提交都会记录作者信息,因此必须配置用户名和邮箱。

gitconfig--globaluser.name"Your Name"gitconfig--globaluser.email"your_email@example.com"
  • --global表示全局配置,写入~/.gitconfig文件。
  • 查看所有配置:git config --list

三、Git 本地仓库基础

3.1 初始化仓库(git init)

在项目根目录执行:

gitinit

会在当前目录生成一个.git隐藏文件夹,这就是本地版本库(所有历史、配置都存在这里)。

3.2 工作区、暂存区、版本库

区域作用
工作区(Workspace)你电脑上能看到的项目文件夹,即正在编辑的文件。
暂存区(Index/Stage)一个索引文件,记录下次要提交的文件列表。
本地仓库(Repository).git 目录,保存所有提交的版本数据。

生活化比喻
工作区 = 你的办公桌(正在改文件);暂存区 = 快递打包台(把要发的文件放上去);本地仓库 = 仓库货架(已经打包好并贴上标签的版本)。

工作流程

  1. 在工作区修改文件。
  2. git add将更改添加到暂存区。
  3. git commit将暂存区内容提交到本地仓库。

四、文件跟踪与状态

业务场景:查看哪些文件被修改、哪些未跟踪。
Web后端重要性:⭐⭐⭐⭐⭐
面试标注:★★(常用命令)

4.1 查看状态(git status)

gitstatus

输出可能状态:

  • Untracked:新文件,未纳入版本控制。
  • Changes to be committed:已暂存,待提交。
  • Changes not staged for commit:已跟踪但未暂存。
  • nothing to commit, working tree clean:所有文件已提交,工作区干净。

4.2 跟踪文件(git add)

gitaddfilename# 跟踪单个文件gitadd.# 跟踪所有未跟踪和已修改的文件

将文件从工作区添加到暂存区。

4.3 提交(git commit)

gitcommit-m"提交说明"

将暂存区内容永久保存到本地仓库,生成一个 commit 对象。

4.4 跳过暂存直接提交(-a)

gitcommit-a-m"提交说明"

自动暂存所有已跟踪的文件(不包括新文件),跳过git add步骤。


五、修改与删除文件

5.1 修改文件后流程

  1. 编辑文件。
  2. git add暂存修改。
  3. git commit -m "message"提交。

5.2 查看提交历史(git log)

gitlog# 完整列表gitlog--oneline# 每行显示一个简洁提交

输出示例:

7e03a21 (HEAD -> master) update aa.txt 07a30b0 add aa.txt

5.3 删除文件

  • 手动删除(rm)后,需要git addgit commit -a记录删除。
  • 使用git rm filename:同时从工作区和暂存区删除,并自动标记为已删除,之后commit即可。
git
http://www.jsqmd.com/news/1111202/

相关文章:

  • QProgressBar文本位置自定义:Kiran Style进度条美化技巧
  • 事务层监控终极指南:如何使用ubctl进行TA层WQE处理时间分析与性能优化 [特殊字符]
  • KiranSingleApplication教程:确保Linux应用单实例运行的最佳实践
  • Kiran桌面环境测试框架深度解析:openeuler/kiran-tests如何保障系统稳定性
  • Wisdom-advisor未来展望:AI驱动的算力分配策略即将到来
  • 鸿蒙原生 ArkTS 瀑布流布局实战:从零实现 Pinterest 风格 MasonryLayout
  • ub-dhcp架构解析:深入理解DHCP协议实现原理
  • Kiran-Qt5-Integration高级技巧:窗口装饰与字体大小管理的终极方案
  • Kiran-shell 系统托盘插件:StatusNotifierItem 与 XEmbed 兼容性实现终极指南 [特殊字符]
  • rat实战案例:10个日常工作中提升效率的实用脚本示例
  • openEuler-portal-mcp文档查询优化:两阶段搜索策略如何精准定位技术文档
  • RDP Wrapper:解锁Windows多人远程桌面的终极解决方案
  • Page Object 软件测试项目结构+代码
  • DDE桌面环境用户完全指南:从入门到精通的30分钟教程
  • utpasswd单元测试实践:确保密码操作零错误的12个测试技巧
  • WittyHub Web界面完全攻略:可视化AI技能发现与评估终极指南
  • Kiran Widgets Qt5 vs 原生Qt控件:为什么选择这款Linux桌面控件库?[特殊字符]
  • ubctl完整命令手册:掌握所有查询功能的终极使用教程
  • 为什么选择openeuler/kiran-tests?Kiran桌面环境自动化测试的终极方案
  • 如何利用ubctl ECC模块进行高效错误检测与系统稳定性维护
  • 嵌入式固件抗量子加密实战:从Kyber/Dilithium算法到资源受限部署
  • 多模态RAG工程实践:图文联合检索与可审计溯源系统
  • Kiran计算器标准模式详解:日常计算的最佳解决方案
  • rat性能测试实战:如何验证多线程文件处理的性能提升效果
  • hpcpilot配置文件详解:setting.ini和hostname.csv配置技巧
  • A股量化策略日报(2026年07月01日)
  • 揭秘Kiran Control Panel架构:从桌面文件到插件实现的完整流程
  • 3步搞定国家中小学智慧教育平台电子课本下载:告别在线浏览的烦恼
  • Kiran Biometrics PAM模块配置教程:实现系统级生物认证
  • 记录一次线上服务OOM排查