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

零基础入门GIT

  1. GIT简介

什么是版本控制

版本控制(Version Control)是一种记录文件内容变化、以便查阅特定版本修订情况的系统。在软件开发中,它追踪代码的每次修改,支持随时回退到历史版本,并与团队成员协同编辑而不互相覆盖。

如果把每次修改文档都另存为「方案_v1.docx」「方案_v2_最终版.docx」,就是在做手工版本控制。版本控制系统将这一过程自动化、规范化,让每次修改都有迹可循。

为什么需要版本控制?

场景

没有版本控制

使用版本控制

代码改错想回退

手动还原,甚至无法恢复

一条命令回退到任意历史版本

多人同时修改同一文件

互相覆盖、版本混乱

自动合并、冲突提示

想知道某段代码的作者和原因

无法追查

每次提交记录作者、时间和说明

同时开发新功能又维护线上版本

复制文件夹管理分支

轻量分支,随时创建、合并、切换

硬盘损坏或误删

数据永久丢失

远程/分布式备份,随时恢复

版本控制是软件工程的基础设施——没有它,稍具规模的开发难以有序进行。

Git 的诞生

Git 诞生于 2005 年,由 Linux 内核创始人Linus Torvalds设计开发。

当时 Linux 内核社区使用的商业版本控制工具 BitKeeper 被收回免费授权。面对全球最大开源项目突然失去版本控制工具的局面,Linus 决定自己写一个。他设定了四个核心目标:

  • 速度极快:Linux 内核数万文件、数百万行代码,任何操作需在秒级完成

  • 分布式:每个开发者拥有完整仓库副本,不依赖单一中央服务器

  • 数据完整性:每次提交用 SHA-1 哈希唯一标识,任何篡改立即被发现

  • 非线性开发:强大的分支管理,允许多条开发线并行

仅用约两周时间,Linus 写出了 Git 原型。如今 Git 已是全球使用最广泛的版本控制系统,GitHub、GitLab、Gitee 等平台均基于 Git 构建。

Git 与 SVN 的对比

SVN(Subversion)是 Git 诞生前最主流的集中式版本控制系统。下表对比核心差异:

维度

Git(分布式)

SVN(集中式)

架构

每个开发者拥有完整仓库副本

仅中央服务器保存完整仓库

离线能力

完整:提交、历史、分支均可离线

受限:几乎所有操作需连接服务器

分支操作

轻量、秒级创建切换,鼓励频繁使用

笨重,分支本质是目录复制,成本高

存储方式

快照存储,按内容寻址

记录文件差异(delta)

数据完整性

SHA-1 哈希校验,篡改可被检测

依赖服务器端校验

学习曲线

概念较多(暂存区、本地仓库),初期较陡

概念简单,上手快

速度

绝大多数本地操作,极快

依赖网络,受延迟和带宽限制

适用场景

现代软件开发、分布式团队、开源项目

对目录级权限有严格需求的传统企业

结论:Git 的分布式架构、高效性能和灵活分支管理使其成为现代软件开发的事实标准。新项目几乎已全面采用 Git。

  1. 下载及安装

  1. 获取 Git

    1. Git 是免费的开源软件,所有平台的安装包均可从官网获取:https://git-scm.com官网会自动检测你的操作系统并提供对应的下载链接。

    2. 镜像(如腾讯软件中心、npm.taobao.org、git-for-windows)下载以提升速度。

  1. 验证安装

安装完成后,打开 CMD 或 PowerShell,输入以下命令验证:

git --version

  1. Mac 安装

方式一:Homebrew 安装(推荐)

Homebrew 是 Mac 上最流行的包管理器。如果尚未安装 Homebrew,先在终端执行:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装 Homebrew 后,执行以下命令安装 Git:

brew install git

方式二:官网安装包

访问 https://git-scm.com/downloads/mac ,下载 .dmg 安装包,双击运行并按照向导完成安装。

方式三:Xcode Command Line Tools

Mac 已安装 Xcode 或运行过 xcode-select --install 的,系统可能已内置 git(通常版本较旧)。可在终端运行 git --version 检查。

  1. Linux 安装

在 Linux 上,通过系统自带的包管理器即可安装 Git。

Debian / Ubuntu 系列

sudo apt update

sudo apt install git

Red Hat / Fedora / CentOS 系列

Fedora 22+

sudo dnf install git

CentOS / RHEL 7 及更早版本

sudo yum install git

Arch Linux

sudo pacman -S git

验证安装

git --version

  1. 安装后初始配置

Git 安装完成后,在正式开始使用前,必须完成以下两项基础配置。这些配置只需执行一次,会写入当前用户的全局 Git 配置文件(位于 ~/.gitconfig 或 C:\Users\用户名\.gitconfig)。

  1. 配置用户名和邮箱

这两项配置会出现在你每一次的提交记录中,是代码归属的标识:

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

git config --global user.email "你的邮箱@example.com"

示例:

bash

git config --global user.name "Zhang San"

git config --global user.email "zhangsan@example.com"

  1. 配置换行符处理(推荐)

不同操作系统使用不同的换行符:Windows 用 \r\n(CRLF),Mac / Linux 用 \n(LF)。为避免跨平台协作时出现混乱,建议配置自动转换:

Windows 用户:

git config --global core.autocrlf true

此配置会在检出代码时将 LF 转换为 CRLF,提交时再转回 LF。

Mac / Linux 用户:

git config --global core.autocrlf input

此配置仅在提交时将 CRLF 转换为 LF,检出时不做转换。

  1. 常用命令

命令行窗口:

# 查看用户名 git config user.name # 查看邮箱 git config user.email

查看当前配置

# 查看所有配置 git config --list # 查看全局配置 git config --global --list # 查看某一项配置 git config --global user.name

命令用途常用参数
git init初始化本地仓库
git clone克隆远程仓库<url> -b <分支> --depth 1
git status查看工作区状态-s(简短格式)
git add暂存文件.(全部)-p(逐块确认)
git commit提交暂存区-m "msg" --amend(修改上次提交)
git push推送至远端-u origin main -f(强制)
git pull拉取并合并远端--rebase(变基而非合并)
git fetch拉取远端不合并--all --prune(清理已删分支)
git branch分支管理-d <名>(删除)-r(查看远端)-a(全部)
git checkout切换分支/恢复文件-b <名>(新建并切换)<文件>(丢弃修改)
git switch切换分支(新版)-c <名>(新建并切换)
git merge合并分支--squash --no-ff
git rebase变基-i HEAD~n(交互式整理提交)
git stash暂存未提交修改push -m "msg" pop list
git log查看提交历史--oneline --graph --author="名" -n 5
git diff查看差异<文件> --staged(暂存区差异)HEAD~1
git reset回退提交/取消暂存--soft HEAD~1 --hard HEAD <文件>
git remote远端管理-v(查看地址)add remove
git tag标签管理-a v1.0 -m "msg" -d <标签>
git cherry-pick拣选提交到当前分支<commit SHA>
git blame查看文件每行归属<文件> -L 10,20
  1. 仓库管理

本章深入讲解 Git 仓库的内部结构、远程仓库交互、分支管理策略以及团队协作的核心工作流。

4.1 仓库结构

4.1.1 三层本地+远端

理解 Git 的数据流转是高效使用 Git 的关键。Git 将数据管理分为三个逻辑区域:

4.3 分支管理

4.3.1 分支的概念与优势

分支(Branch)是 Git 最强大的特性之一。它让你可以在不影响主线代码的情况下,并行开发新功能、修复 Bug 或进行实验。

4.3.2 分支操作

查看所有本地分支(当前分支前有 * 标记) git branch 查看所有分支(包括远程分支) git branch -a 仅查看远程分支 git branch -r 查看分支最后一次提交信息 git branch -v 创建新分支(但不切换) git branch feature/login 切换分支 git checkout feature/login 创建并切换到新分支 git checkout -b feature/login 或 git switch -c feature/login 基于指定提交创建分支 git checkout -b hotfix/urgent a1b2c3d 合并分支 先切换到目标分支(如 master) git checkout master 将指定分支合并到当前分支 git merge feature/login 安全删除(仅删除已合并的分支) git branch -d feature/login 强制删除(即使有未合并的改动) git branch -D feature/login 删除远程分支 git push origin --delete feature/login
http://www.jsqmd.com/news/1067694/

相关文章:

  • 8大主流网盘直链一键获取:告别限速困扰的终极解决方案
  • 如何用JPEXS Free Flash Decompiler拯救你珍贵的Flash数字遗产?
  • 出海企业SSL证书怎么选?Digicert、Sectigo 真实使用体验分享
  • API 是什么?给不懂技术的小白:点菜、快递和“软件服务员”
  • 西方数学历史及关键时间节点和人物
  • 昇腾计算架构CANN图像视觉算子库中ops-cv仓库的目标检测融合算子设计与开放神经网络交换格式插件扩展接入流程及算子自动生成工具使用方法全面技术解读
  • 如何5分钟找出微信单向好友:一键检测谁删除了你的完整指南
  • 技术传输对象的数据封装与传输
  • 从零构建国际宏观数据爬虫:世界银行与IMF数据自动化采集指南
  • 【免费领源码】基于PHP框架的文旅资源展示与智能推荐平台|库存管理/订单发货/车辆管理完整项目
  • AUTOSAR 完全指南:从入门到实践
  • 2026年广东TikTok直播带货课程服务方参照:五家机构定位与能力分析
  • 深度学习中的神经网络设计与优化
  • 论文数据被 Nature 子刊引用是什么体验?谈谈科研数据的 “隐性含金量”
  • MySQL 索引类型选择指南
  • GB/T 4857.17-2017 标准科普|运输包装试验大纲通用规则
  • 云南高原监控工程技术纪实:本土服务商云南凯尊科技全维度解析
  • Gemini 3.5 图表 + 文字混合文档信息融合技术解析:原生多模态架构、统一 Token 序列化与工程实践
  • 多账号浏览器选型:个人多开和团队协作的技术检查清单
  • 什么是涌现?
  • 为什么Redis的SETNX命令可以实现分布式锁?
  • 全域核销领跑全国足浴行业:索易软件四大平台官方直连,数字化实力断层领先
  • 事件驱动化技术事件溯源与命令查询职责分离模式
  • 昇腾计算架构集合通信库的拓扑感知全规约算法实现与多卡分布式训练梯度同步通信调度优化及链路故障自动检测恢复容错机制深度技术解析
  • 升级管理化技术中的升级计划升级实施升级验证
  • 应急管理系统:灾害预警与资源调度的决策支持
  • Python 爬虫任务调度架构
  • 黑苹果引导配置终极指南:OpenCore Configurator图形化工具完全解析
  • 软件桥接管理中的抽象实现分离
  • 技术规划中的路线图制定与资源分配