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

Git 基础:命令、分支与远程仓库管理

综述由AI生成Git 的基础操作与管理流程。内容包括设置用户信息、查看配置、文件状态管理(status)、暂存(add)、提交(commit)、日志查看(log)、版本回退及 reflog 恢复。详细讲解了分支管理,包括创建、切换、合并、删除及冲突解决策略,并阐述了 master、develop、feat、hotfix 等分支的使用原则。此外,还涵盖了远程仓库的操作,如添加远程源、推送、克隆、抓取与拉取,以及远程合并冲突的处理方法。

山野来信发布于 2026/3/26更新于 2026/5/2020 浏览

Git 基础

Git 提供了图形界面工具(GUI)和命令行工具(Bash),本文主要介绍基于命令行的基础操作。

设置用户信息

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

注意:name 和 email 后面有一个空格

查看配置信息

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

基础操作指令

在 Git 工作目录下,文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着执行 Git 命令而发生变化。

文章配图

1. 查看修改状态 (status)

作用: 查看修改的状态(暂存区、工作区)

命令形式: git status

2. 添加到工作区到暂存区 (add)

作用: 添加工作区一个或多个文件的修改到暂存区

命令形式: git add 单个文件名 或 git add 通配符

通配符说明:

符号功能
*匹配任意字符(0 个或多个)
?匹配一个字符
[ ]正则匹配符号

3. 提交暂存区到本地仓库 (commit)

作用: 将暂存区的更改提交到本地仓库

命令形式: git commit -m '注释内容'

4. 查看提交日志 (log)

作用: 查看提交记录

命令形式: git log options

options功能
--all显示所有分支
--pretty=oneline将提交信息显示为一行
--abbrev-commit使得输出的 commitId 更简短
--graph以图的形式显示

5. 版本回退

作用: 版本切换

命令形式: git reset --hard commitID

  • commitID 可以使用 git log 指令查看
如何查看已经删除的记录?
  • git reflog:可以看到已经删除的提交记录

文章配图

添加文件至忽略列表

一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。在这种情况下,可以在工作目录中创建一个名为 .gitignore 的文件(文件名称固定),列出要忽略的文件模式。

分支

几乎所有的版本控制系统都以某种形式支持分支。使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的 bug 修改、开发新的功能,以免影响开发主线。

查看本地分支

命令: git branch

创建本地分支

命令: git branch 分支名

切换分支 (checkout)

命令: git checkout 分支名

我们还可以直接切换到一个不存在的分支(创建并切换):

命令: git checkout -b 分支名

合并分支

一个分支上的提交可以合并到另一个分支。

命令: git merge 分支名称

删除分支

不能删除当前分支,只能删除其他分支。

  • git branch -d b1:删除 b1 分支时,需要做各种检查
  • git branch -D b1:不做任何检查,强制删除 b1 分支

解决冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突。解决冲突步骤如下:

  1. 处理文件中冲突的地方
  2. 将解决完冲突的文件加入暂存区(add)
  3. 提交到仓库(commit)

文章配图

开发中分支使用原则与流程

在开发中,一般有如下分支使用原则与流程:

  1. master(生产)分支:线上分支,主分支,中小规模项目作为线上运行的应用对应的分支
  2. develop(开发)分支:是从 master 创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成之后,需要是合并到 master 分支,准备上线
  3. feat/xxx 分支:从 develop 创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到 develop 分支
  4. hotfix/xxx 分支:从 master 派生的分支,一般作为线上 bug 修复使用,修复完成后需要合并到 master,test,develop 分支

远程仓库

添加远程仓库

此操作是先初始化本地库,然后与已创建的远程库进行对接。

命令: git remote add <远端名称> <仓库路径>

  • 远端名称,默认是 origin,取决于远端服务器设置
  • 仓库路径,从远端服务器获取此 URL

查看远程仓库

命令: git remote

推送到远程仓库

命令: git push [-f] [--set-upstream] [远端名称 [本地分支名 [:远端分支名]]]

  • 如果远程分支名和本地分支名称相同,则可以只写本地分支,如:git push origin master
  • --set-upstream:推送到远端的同时并且建立起和远端分支的关联关系,如:git push --set-upstream origin master
  • 如果当前分支已经和远端分支关联,则可以省略分支名和远端名,如:git push 将 master 分支推送到已关联的远端分支
  • -f:强制覆盖

本地分支与远程分支的关联关系

命令: git branch -vv

从远程仓库克隆

如果已经有一个远端仓库,我们可以直接 clone 到本地。

命令: git clone <仓库路径> [本地目录]

  • 本地目录可以省略,会自动生成一个目录

从远程仓库中抓取和拉取

远程分支和本地的分支一样,我们可以进行 merge 操作,只是需要先把远端仓库里的更新都下载到本地,再进行操作。

  • 抓取 命令:git fetch [remote name] [branch name]
    • 抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
    • 如果不指定远端名称和分支名,则抓取所有分支
  • 拉取 命令:git pull [remote name] [branch name]
    • 拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于 fetch+merge
    • 如果不指定远端名称和分支名,则抓取所有并更新当前分支

文章配图

解决合并冲突

在一段时间内,A、B 用户修改了同一个文件,且修改了同一行位置的代码,此时会发生合并冲突。

A 用户在本地修改代码后优先推送到远程仓库,此时 B 用户在本地修订代码,提交到本地仓库后,也需要推送到远程仓库。此时 B 用户晚于 A 用户,故需要先拉取远程仓库的提交,经过合并后才能推送到远端分支。

文章配图

在 B 用户拉取代码时,因为 A、B 用户同一段时间修改了同一个文件的相同位置代码,故会发生合并冲突。

远程分支也是分支,所以合并时冲突的解决方式也和解决本地分支冲突相同。

目录

  1. Git 基础
  2. 设置用户信息
  3. 查看配置信息
  4. 基础操作指令
  5. 1. 查看修改状态 (status)
  6. 2. 添加到工作区到暂存区 (add)
  7. 3. 提交暂存区到本地仓库 (commit)
  8. 4. 查看提交日志 (log)
  9. 5. 版本回退
  10. 如何查看已经删除的记录?
  11. 添加文件至忽略列表
  12. 分支
  13. 查看本地分支
  14. 创建本地分支
  15. 切换分支 (checkout)
  16. 合并分支
  17. 删除分支
  18. 解决冲突
  19. 开发中分支使用原则与流程
  20. 远程仓库
  21. 添加远程仓库
  22. 查看远程仓库
  23. 推送到远程仓库
  24. 本地分支与远程分支的关联关系
  25. 从远程仓库克隆
  26. 从远程仓库中抓取和拉取
  27. 解决合并冲突
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • 从零构建可扩展 Flutter 应用:v1.0 到 v2.0 全代码详解
  • 被工具定义的编程时代:VS Code 与 JetBrains 效率提升实战指南
  • Java 面向对象三大特性:封装、继承与多态
  • Vue Router 进阶实战:导航守卫、嵌套路由与状态管理
  • Qwen3.5-9B 对比 GPT-oss-120B:混合架构与基准测试全解析
  • Python ORM 框架:SQLAlchemy 完全指南
  • Java 9 至 Java 25:语言演进与技术革新分析
  • 探索 LoRA 低秩适应技术:提升大语言模型微调效率的方法
  • 顺丰发布物流垂直领域大模型“丰语”:覆盖 20 余个业务场景
  • CentOS 系统上实现 Python 定时邮件任务的五种方案
  • 前端实战:使用 HTML、CSS 和 JavaScript 实现网页井字棋
  • 昇腾 NPU 部署与测评 CodeLlama-7b-Python 模型
  • Node-RED 智能家居自动化配置指南
  • 前端监控最佳实践与 Sentry 集成
  • Mac mini M4 部署 OpenClaw + Ollama 本地大模型接入飞书机器人
  • 基于 SpringBoot 的超市会员积分管理系统
  • Meta-Llama-3-8B-Instruct 本地部署与对话全流程实战
  • GESP C++ 六级认证真题解析:判断题 1-10
  • 基于 Selenium 的 Python 图片爬虫实战
  • AIGC 推理延迟优化:C++ 层级吞吐量瓶颈分析

相关免费在线工具

  • 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