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

Git 极简使用指南

Git 是一个强大的分布式版本控制系统,但入门只需要掌握几个核心概念和命令。本指南旨在帮助你快速上手,处理日常开发中最常见的 80% 的场景。
在这里插入图片描述

核心概念

  1. 仓库 (Repository / Repo): 你的项目文件夹,包含了项目的所有文件和完整的历史记录。
  2. 工作区 (Workspace): 你当前正在修改文件的目录。
  3. 暂存区 (Staging Area / Index): 一个暂存文件快照的地方,准备提交到仓库。
  4. 本地仓库 (Local Repository): 存储在你自己电脑上的项目版本历史。
  5. 远程仓库 (Remote Repository): 托管在网络服务器(如 GitHub, GitLab)上的项目版本历史,用于团队协作和备份。
  6. 分支 (Branch): 为了隔离开发而创建的独立线路,避免在主线上造成混乱。mastermain 是默认的主分支。
  7. 提交 (Commit): 将暂存区的文件快照永久保存在本地仓库的一次记录。每次提交都应该是一个完整的、独立的功能或修复
  8. HEAD: 一个指针,指向你当前所在的本地分支的最新一次提交。

工作流程图

Local Machine
git add
git commit
git push
git checkout
git pull
Staging Area
Workspace
Local Repo
Remote Repo
Remote Server

常用命令

掌握以下几个命令,就能应对绝大部分日常工作。

1. 初始化与克隆

  • git init

    • 在当前目录创建一个新的 Git 仓库。
    • git init my-project
  • git clone [url]

    • 从远程仓库复制一份完整的项目到本地。这是你参与一个现有项目的起点。
    • git clone https://github.com/someone/example-repo.git

2. 本地操作核心三步曲

这是你最常执行的操作循环:修改 -> 暂存 -> 提交。

  • git status

    • 查看当前工作区和暂存区的状态,强烈建议在执行任何操作前都先运行此命令,了解当前状况。
  • git add [file]

    • 将工作区的修改添加到暂存区。
    • git add . : 添加所有已修改和新创建的文件。
    • git add specific-file.js : 添加指定文件。
  • git commit -m "Your descriptive message"

    • 将暂存区的所有内容提交到本地仓库,并附上一条说明性的消息。
    • 提交信息 (-m) 一定要写清楚! 例如: "feat: Add user login functionality""fix: Correct calculation error in payment module"

3. 分支管理

分支是 Git 的核心优势,它让并行开发变得简单而安全。

  • git branch

    • 列出所有本地分支。*号标记的是你当前所在的分支。
  • git branch [branch-name]

    • 创建一个新分支。
  • git checkout [branch-name]git switch [branch-name] (推荐)

    • 切换到指定分支。你的工作区文件会立刻变为该分支的状态。
  • git checkout -b [branch-name]git switch -c [branch-name] (推荐)

    • 一个快捷命令,创建并立即切换到新的分支。这是开始一个新功能或修复一个 bug 的标准起手式。
    • git switch -c feature/new-button
  • git merge [branch-name]

    • 将指定分支的更改合并到当前分支。例如,你在 main 分支,想把 feature 分支的代码合进来,就执行 git merge feature

4. 远程协作

  • git remote -v

    • 查看已配置的远程仓库地址。
  • git push [remote-name] [branch-name]

    • 将本地分支的提交推送到远程仓库
    • git push origin main : 将本地的 main 分支推送到名为 origin 的远程仓库。origingit clone 时默认创建的远程仓库别名。
  • git pull [remote-name] [branch-name]

    • 从远程仓库拉取最新更改并合并到当前本地分支。这相当于 git fetch + git merge
    • 在开始新工作或准备推送前,养成先 git pull 的好习惯,以避免冲突。

5. 查看历史

  • git log
    • 查看提交历史。按 q 退出。
    • git log --oneline --graph --decorate : 一个更美观、更简洁的日志视图。

极简实战流程

假设你要为一个项目添加一个新功能:

  1. 确保你的 main 分支是最新状态:

    git switch main
    git pull origin main
    
  2. 为新功能创建一个专门的分支:

    # **创建并切换到名为 feature/user-profile 的新分支**
    git switch -c feature/user-profile
    
  3. 开始编码和修改文件…

  4. 分步提交你的修改:

    # 查看修改了哪些文件
    git status# 添加你想要提交的文件
    git add .# **提交你的阶段性成果,写清楚提交信息**
    git commit -m "feat: Add user avatar and basic info display"
    
  5. 将你的功能分支推送到远程仓库,以便备份和团队评审:

    # **首次推送该分支时,需要设置上游(upstream)分支**
    git push -u origin feature/user-profile# **之后再推送该分支,直接使用**
    git push
    
  6. 功能完成后,将其合并回主分支:

    • 在 GitHub/GitLab 等平台上,你可以发起一个 “Pull Request” (或 “Merge Request”)。这是最佳实践。
    • 如果是在本地合并:
      # 切换回主分支
      git switch main# 拉取最新的主分支代码,以防别人更新了
      git pull origin main# **将你的功能分支合并进来**
      git merge feature/user-profile# **将合并后的主分支推送到远程**
      git push origin main
      
  7. (可选)删除已经合并的分支:

    # 删除本地分支
    git branch -d feature/user-profile# 删除远程分支
    git push origin --delete feature/user-profile
    

掌握以上内容,你就可以自信地使用 Git 进行版本控制了。祝你编码愉快!

相关文章:

Git 极简使用指南

Git 是一个强大的分布式版本控制系统,但入门只需要掌握几个核心概念和命令。本指南旨在帮助你快速上手,处理日常开发中最常见的 80% 的场景。 核心概念 仓库 (Repository / Repo): 你的项目文件夹,包含了项目的所有文件和完整的历史记录。…...

力扣刷题Day 69:搜索二维矩阵(74)

1.题目描述 2.思路 首先判断target是否有可能在矩阵的某一行里,没可能直接返回False,有可能就在这一行里二分查找。 3.代码(Python3) class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> boo…...

c#压缩与解压缩-SharpCompress

SharpCompress SharpCompress 是一个开源项目库,能够处理文件。c#库对于压缩已经有很多,可以随意选择,看了SharpCompress感觉比较简洁,还是介绍给大家。 项目地址: sharpcompress 项目使用 引入nuget包&#xff1…...

Neo4j 安全深度解析:原理、技术与最佳实践

在当今数据驱动的世界中,图数据库承载着关键的关系信息,其安全性至关重要。Neo4j 提供了一套多层次、纵深防御的安全体系。 Neo4j 的安全体系提供了从认证授权到数据加密、审计追溯的完整解决方案。安全不是单一功能而是一种持续状态,其有效…...

MySQL指令个人笔记

MySQL学习,SQL语言笔记 一、MySQL 1.1 启动、停止 启动 net start mysql83停止 net stop mysql831.2 连接、断开 连接 mysql -h localhost -P 3306 -u root -p断开 exit或者ctrlc 二、DDL 2.1 库管理 2.1.1 直接创建库 使用默认字符集和排序方式&#xf…...

2022年 国内税务年鉴PDF电子版Excel

2022年 国内税务年鉴PDF电子版Excelhttps://download.csdn.net/download/2401_84585615/89784658 https://download.csdn.net/download/2401_84585615/89784658 2022年国内税务年鉴是对中国税收政策、税制改革和税务管理实践的全面总结。这份年鉴详细记录了中国税收系统的整体状…...

基于Java的OPCDA采集中间件

1.软件功能及技术特点简介: 软件功能及技术特点简介: OPCDA是基于Java语言开发的OPC client(OPC客户端)跨平台中间件软件,他支持OPC SERVER的OPC DA1.0/2.0/3.0。OPCDA实时采集数据(包括实时数据、报警数…...

基于PyQt5的相机手动标定工具:原理、实现与应用

基于PyQt5的相机手动标定工具:原理、实现与应用 一、背景介绍二、功能详解与实现原理2.1 图像加载与预处理2.2 交互式透视调整2.3 透视变换数学原理2.4 图像拼接核心技术2.5 用户界面优化细节三、完整使用流程四、应用场景实例五、技术优势分析六、代码七、总结一、背景介绍 …...

vue2 项目中 npm run dev 运行98% after emitting CopyPlugin 卡死

今天在运行项目时,发现如下问题: 开始以为是node_modules依赖的问题,于是重新 npm install,重启项目后还是未解决。 在网上找了一圈发现有人说是 require引入图片地址没有写。在我的项目中排查没有这个问题,最后发现某…...

JavaScript 性能优化实战:从原理到框架的全栈优化指南

在 Web 应用复杂度指数级增长的今天,JavaScript 性能优化已成为衡量前端工程质量的核心指标。本文将结合现代浏览器引擎特性与一线大厂实践经验,构建从基础原理到框架定制的完整优化体系,助你打造高性能 Web 应用。 一、性能优化基础&#x…...

2025年- H61-Lc169--74.搜索二维矩阵(二分查找)--Java版

1.题目描述 2.思路 方法一: 定义其实坐标,右上角的元素(0,n-1)。进入while循环(注意边界条件,行数小于m,列数要>0)从右上角开始开始向左遍历(比当…...

微服务商城-用户微服务

数据表 用户表 CREATE DATABASE user; USE user;CREATE TABLE user (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 用户ID,username varchar(50) NOT NULL DEFAULT COMMENT 用户名,password varchar(50) NOT NULL DEFAULT COMMENT 用户密码,MD5加密…...

数学复习笔记 26

5.25:这题还是有点难度的。主要是出现了新的知识点,我现在还没有那么熟悉这个新的知识点。这块就是,假设一个矩阵可以写成一个列向量乘以一个行向量的形式,这两个向量都是非零向量,那么这个矩阵的秩等于一。这个的原理…...

创建型-设计模式

文章目录 单例模式工厂模式建造者模式原型模式 单例模式 单例模式有饿汉式 和 懒汉式。这个我觉得无需多言,每个学过Java的都知道。 1.单例的使用:我一般就是用饿汉式,因为App开发的开发一般数据处理并不复杂,所以直接使用饿汉式…...

移动AI神器GPT Mobile:多模型自由切换

GPT Mobile是什么 GPT Mobile是一款开源的本地移动部署AI工具,主要用于安卓设备。以下是其相关介绍: 功能特点 多模型交互:支持与多个大型语言模型(LLM)同时进行对话,用户导入相应的API密钥,就可连接OpenAI、Anthropic、Google、Ollama等平台,还能根据需求自由切换不同…...

【黄金评论】美元走强压制金价:基于NLP政策因子与ARIMA-GARCH的联动效应解析

一、基本面:多因子模型解析黄金承压逻辑 1. 政策冲击因子驱动美元强势 通过NLP模型对关税政策文本进行情感分析,构建政策不确定性指数(PUI)达89.3,触发美元避险需求溢价。DSGE模型模拟显示,钢铁关税上调至…...

ubutu修改网关

修改Netplan配置以指定静态网关 1. 编辑Netplan配置文件 打开Netplan配置文件(通常位于 /etc/netplan/01-netcfg.yaml 或类似路径): sudo nano /etc/netplan/01-netcfg.yaml 2. 修改配置文件 在DHCP配置基础上,添加静态网关和…...

Flink进阶之路:解锁大数据处理新境界

目录 一、Flink 基础回顾 二、Flink 进阶知识深入 2.1 数据类型与序列化 2.2 双流 Join 操作 2.3 复杂事件处理(CEP) 2.4 状态管理与优化 三、Flink 在实际场景中的应用 3.1 实时智能推荐 3.2 实时欺诈检测 3.3 实时数仓与 ETL 四、Flink 性能…...

【论文阅读】Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting

Paper:https://arxiv.org/abs/2505.14059 Source code: https://github.com/bytedance/Dolphin 作者机构:字节跳动 背景 业务场景 企业数据大多数都以文本、图片、扫描件、电子表格、在线文档、邮件等文档的形式存在,例如:PDF文…...

谷歌地图免费下载手机版

软件标签: 谷歌地图 谷歌卫星高清地图 下载链接:夸克网盘分享 手机地图 谷歌地图免费下载(google maps)是谷歌公司打造的手机高清电子地图。2024谷歌地图官方中文版能够直观的表达出世界各地的地点,在地图中能够清晰的了解到自身的定位,让…...

DeepSeek 赋能金融衍生品:定价与风险管理的智能革命

目录 一、引言1.1 金融衍生品市场发展现状1.2 DeepSeek 的技术特点和优势1.3 研究目的和意义 二、金融衍生品定价与风险管理基础2.1 金融衍生品定价常用方法2.2 金融风险管理主要策略 三、DeepSeek 在金融衍生品定价中的应用3.1 DeepSeek 助力定价模型构建3.2 案例分析&#xf…...

SpringBoot-15-多表查询之多对多查询可选中间表

文章目录 1 mysql数据库1.1 role角色表1.2 user用户表1.3 user_role中间表2 实体类2.1 Role.java2.2 User.java3 mapper3.1 RoleMapper.java3.2 UserMapper.java4 xml4.1 RoleMapper.xml4.2 UserMapper.xml5 UserController.java6 测试7 参考附录多对多查询,一个用户可以有多个…...

论文中pdf图片文件太大怎么办

文章目录 1.使用pdf文件的打印功能将文件导出2.操作3.前后文件大小对比 1.使用pdf文件的打印功能将文件导出 该方法在保证清晰度的同时,内存空间也能实现减少(如果使用线上的压缩pdf工具,清晰度会直线下降) 2.操作 点击文件—&…...

简单爬虫框架实现

1. 框架功能概述 (1) HttpSession 类:请求管理 功能:封装 requests 库,实现带重试机制的 HTTP 请求(GET/POST)。关键特性: 自动处理 429(请求过多)、5xx(服务器错误&am…...

MVCC理解

MySQL的MVCC(Multi-Version Concurrency Control,多版本并发控制)是一种高效的并发控制机制,通过维护数据的多个版本实现读写操作的并行执行,显著提升数据库的并发性能和数据一致性。 MVCC 的实现依赖于:隐…...

705SJBH超市库存管理系统文献综述

前言 信息化的发展已经对我们的日常生活产生了积极的影响,无论是企业、商店、机关、甚至个人,每天都面对着大量的信息,而如果能有效地识别有用信息,并在对它们加工的基础上充分的利用信息,无疑会给我们的生活带来很巨…...

shell:基础

本文主要探讨shell相关知识。 变量 $? 上一次执行命令返回状态 $$ 当前进程进程号 $! 后台运行的最后一个进程的进程号 $# 位置参数的数量 $* 参数内容 $ 参数内容 $和$*解析"hello word"为"hello" "word" "$"解析"hello word&…...

【JVM】万字总结GC垃圾回收

【JVM】GC垃圾回收 概念 在程序运行过程中,会不断创建对象来使用内存,当这些对象不再被引用时,其所占用的内存若不及时释放,会导致内存占用不断增加,最终可能引发内存溢出。GC 机制能自动检测并回收这些不再使用的对…...

内网横向之RDP缓存利用

RDP(远程桌面协议)在连接过程中会缓存凭据,尤其是在启用了 "保存密码" 或 "凭据管理器" 功能时。这个缓存的凭据通常是用于自动填充和简化后续连接的过程。凭据一般包含了用户的用户名和密码信息,或者是经过加…...

【Linux网络】传输层TCP协议

🌈个人主页:秦jh__https://blog.csdn.net/qinjh_?spm1010.2135.3001.5343 🔥 系列专栏:https://blog.csdn.net/qinjh_/category_12891150.html 目录 TCP 协议 TCP 协议段格式 确认应答(ACK)机制 超时重传机制 连接管理机制 …...