跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash

Git 版本控制基础指令与常用操作指南

Git 作为分布式版本控制系统,核心在于工作区、暂存区与仓库的状态流转。涵盖从初始化仓库、用户配置到日常提交、分支管理及远程同步的全流程指令。重点解析了 git add、commit、merge 等关键命令的实际用法,以及处理合并冲突和 SSH 密钥配置的实操步骤,帮助开发者快速掌握版本控制的核心逻辑。

协议工匠发布于 2026/3/22更新于 2026/6/1922 浏览
Git 版本控制基础指令与常用操作指南

Git 概述

Git 是一个分布式版本控制系统,它允许我们在本地和远程仓库之间管理代码的增删改查。理解 Git 的工作流程是掌握版本控制的关键。

Git 工作流程示意图

简单来说,代码修改会经历工作区、暂存区和仓库三个状态。我们将文件添加到缓存区,再由缓存区提交到本地仓库,从而形成代码的版本快照。

环境配置

在使用 Git 之前,我们需要先设置用户信息,这样每次提交都会带上你的身份标识。

git config --global user.name "wubai"
git config --global user.email "[email protected]"

查看配置是否生效:

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

本地仓库操作

在电脑任意位置创建一个空目录作为本地 Git 仓库,进入该目录后执行 git init 初始化。成功后你会看到一个隐藏的 .git 目录。

核心指令

  • 初始化仓库:git init
  • 添加文件到暂存区:git add .(注意空格和点)
  • 提交到本地仓库:git commit -m "add file01"
  • 查看状态:git status(区分暂存区和工作区的修改)
  • 查看历史:git log 或 git reflog(后者可找回已删除的提交记录)
  • 图形化分支视图:git log --all --pretty=oneline --abbrev-commit --graph

版本回退

如果提交错了,可以使用 reset 命令回退到指定版本。

git reset --hard <commitID>

提示:commitID 可以通过 git log 获取。回退前请确保当前分支没有未提交的更改,否则可能会丢失数据。

忽略文件

不想让 Git 管理的文件(如编译产物、密钥),可以创建 .gitignore 文件并写入规则。

分支管理

多人协作时,通常采用分支策略。例如 master 用于生产,develop 用于开发,功能分支则按需创建。

分支操作

  • 查看分支:git branch
  • 创建分支:git branch dev01
  • 切换分支:git checkout dev01
  • 创建并切换:git checkout -b dev02
  • 注意:HEAD 指针指向当前所在的分支。

    分支切换示意

    合并与删除

    合并前务必切换到目标分支(通常是 master)。

    git merge dev01
    

    删除分支时,建议先检查是否已合并。

    git branch -d b1    # 安全删除,需已合并
    git branch -D b1    # 强制删除,不检查
    

    警告:未合并的分支若使用 -D 强制删除,可能导致代码丢失,请务必谨慎。

    分支合并冲突示例

    远程仓库交互

    常见的托管平台包括 GitHub(开源)、GitLab(企业私有)和 Gitee(国内)。

    SSH 公钥配置

    为了免密推送,需要生成并配置 SSH 公钥。

    1. 生成密钥:ssh-keygen -t rsa(一路回车即可)
    2. 查看公钥:cat ~/.ssh/id_rsa.pub
    3. 配置:将公钥内容复制到平台的 SSH Keys 设置中。

    SSH 配置界面

    连接与推送

    添加远程仓库地址:

    git remote add origin [email protected]:wubaidev/FlinkSinkToHbaseES.git
    

    查看远程仓库:

    git remote
    

    首次推送到远程分支时,建立关联关系:

    git push --set-upstream origin master:master
    # 或者简写为
    git push -u origin master
    

    查看本地与远程分支对应关系:

    git branch -vv
    

    拉取更新

    从远程克隆项目:

    git clone [email protected]:wubaidev/FlinkSinkToHbaseES.git
    

    当远程仓库有更新时,有两种方式同步:

    1. Fetch + Merge:先拉取再合并,更安全可控。
      git fetch origin/master
      git merge origin/master
      
    2. Pull:一键完成拉取和合并。
      git pull
      

    处理冲突

    如果本地修改与远程冲突,git pull 会报错。此时需要手动打开冲突文件,保留需要的代码部分,保存后执行:

    git add .
    git commit
    git push
    

    解决冲突是日常开发中的常见场景,保持冷静,仔细比对差异即可。

    目录

    1. Git 概述
    2. 环境配置
    3. 本地仓库操作
    4. 核心指令
    5. 版本回退
    6. 忽略文件
    7. 分支管理
    8. 分支操作
    9. 合并与删除
    10. 远程仓库交互
    11. SSH 公钥配置
    12. 连接与推送
    13. 或者简写为
    14. 拉取更新
    15. 处理冲突
    • 免费图片AI生成工具免费生成了解详情
    • Magick API 一键接入全球大模型注册送1000万token查看
    • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
    • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
    • 100+免费在线小游戏爽一把
    极客日志微信公众号二维码

    微信扫一扫,关注极客日志

    微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

    更多推荐文章

    查看全部
    • Spring AOP 实现基于业务逻辑的动态数据源切换
    • DeepSeek-R1-Distill-Llama-8B 本地部署与推理性能优化
    • LLM 存储优化实战:解决大量 QA 与长对话记忆问题
    • 新版 llama.cpp 本地部署与使用指南
    • 精易模块 Excel 操作实战:中小学生成绩管理系统
    • Meta 发布 Llama 3 系列模型:性能、训练与部署详解
    • 腾讯云开发 Copilot 低代码 AI 开发体验与展望
    • AI 时代重读《人人都是产品经理》:核心内核与实战路径
    • 顺序文件的基本概念与查找算法
    • LLaMA 衍生模型详解:官方演进与社区微调
    • LangChain 实战:工具调用与结构化输出应用
    • FPGA 开发环境搭建:Vivado 与 Vitis 2023.1 安装详解
    • 医疗大模型商业化进程:挑战、方案与落地路径
    • Synfig Studio 入门指南:免费开源 2D 动画软件
    • RabbitMQ 分布式事务:基于消息表的柔性事务实践
    • C++26 优先级队列性能优化与特性解析
    • ClawX:基于 OpenClaw 的桌面版 AI 助手部署指南
    • Ubuntu 20.04 LTS 升级至 24.04 LTS 完整步骤
    • Go Web 开发核心理论:HTTP、数据库与模板
    • Python 图形界面(GUI)编程技术详解

    相关免费在线工具

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

    • Base64 文件转换器

      将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

    • Markdown转HTML

      将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

    • HTML转Markdown

      将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

    • JSON 压缩

      通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

    • JSON美化和格式化

      将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online