跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Shell / Bash大前端

MacOS 系统安装与使用 Git 方法指南

在 MacOS 系统下安装和使用 Git 的方法。内容包括三种主流安装方式(Xcode 命令行工具、Homebrew、官网安装包),以及从基础到高级的全套操作指南。基础部分涵盖环境配置、仓库创建、文件提交与历史查看;中级部分讲解分支管理、远程仓库协作及冲突解决;高级部分涉及暂存变更、标签管理、忽略文件配置及撤销操作。文末附带常用命令速查表,帮助开发者快速掌握版本控制技能。

DataScient发布于 2026/3/30更新于 2026/10/17110 浏览
MacOS 系统安装与使用 Git 方法指南

在 MacOS 安装和使用 Git 的方法

一、Git 介绍

Git 是一款开源的分布式版本控制系统,能够高效地跟踪文件变更、管理代码版本,是软件开发、文档协作等场景的核心工具。与集中式版本控制系统不同,Git 支持本地完整版本库存储,无需依赖网络即可完成大部分操作,同时具备强大的分支管理、协同开发能力,广泛应用于 GitHub、GitLab 等代码托管平台。在 macOS 系统中,Git 提供了多种安装方式,且操作逻辑与其他系统保持一致,本文将从安装到高级应用逐步讲解使用方法。

二、下载与安装 Git

macOS 下安装 Git 有 3 种主流方式,推荐根据自身需求选择,其中 Homebrew 安装 最便捷,适合大多数用户。

2.1 方式一:通过 Xcode Command Line Tools 安装(最简单)

macOS 自带的 Xcode 开发工具包含 Git,即使未安装完整 Xcode,也可单独安装其命令行工具:

  1. 打开「终端」(Terminal,可通过 Spotlight 搜索 Terminal 快速启动);
  2. 弹出安装弹窗后,点击「安装」,等待系统自动下载并配置完成;
  3. 验证安装:再次输入 git --version,若输出类似 git version 2.39.3 (Apple Git-145) 的版本信息,说明安装成功。

输入以下命令,系统会自动提示安装 Command Line Tools:

git --version 
2.2 方式二:通过 Homebrew 安装(推荐,版本可控)

Homebrew 是 macOS 下的包管理器,可快速安装/更新 Git,适合需要最新版本或自定义配置的用户:

  1. 验证安装:输入 git --version,输出类似 git version 2.45.1 的信息即成功(版本号可能随更新变化);

后续更新 Git 可执行:

brew update && brew upgrade git

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

brew install git

若未安装 Homebrew,先在终端执行以下命令安装(需联网,过程约 5-10 分钟):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
2.3 方式三:通过 Git 官网安装包安装(手动配置)

适合习惯图形化安装的用户,步骤如下:

  1. 访问 Git 官网下载页面:https://git-scm.com/download/mac;
  2. 点击下载对应 macOS 版本的 .dmg 安装包(自动适配 Intel/Apple Silicon 芯片);
  3. 打开安装包,按照向导提示点击「继续」「安装」,默认配置即可;
  4. 验证安装:打开终端输入 git --version,输出版本信息即成功。

三、Git 初级使用(基础操作入门)

初级使用聚焦「本地版本控制」核心功能,包括配置、创建仓库、提交变更、查看历史等,适合单独开发场景。

3.1 第一步:初始配置(必做)

安装后需配置用户名和邮箱,用于标识提交记录(与代码托管平台账号一致更佳):

查看配置是否生效:

git config --list 

输出中应包含上述配置的 user.name 和 user.email。

配置邮箱(替换为你的邮箱):

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

配置用户名(替换为你的名称):

git config --global user.name "Your Name"
3.2 第二步:创建本地仓库

仓库(Repository)是 Git 存储文件版本的目录,可通过两种方式创建:

3.2.1 新建仓库(从零开始)

初始化仓库,生成 .git 隐藏目录(存储版本信息):

git init 

输出 Initialized empty Git repository in /Users/xxx/Documents/MyProject/.git/ 即成功。

终端中进入需作为仓库的文件夹(例如 Documents/MyProject):

cd ~/Documents/MyProject # 替换为你的文件夹路径
3.2.2 克隆远程仓库(从 GitHub 等平台获取已有项目)

若需获取远程仓库(如 GitHub 上的项目),使用 git clone 命令:

git clone https://github.com/username/repository-name.git # 替换为远程仓库地址

执行后会在当前目录创建与仓库同名的文件夹,包含完整项目文件和版本历史。

3.3 第三步:提交文件变更(核心流程)

Git 提交变更需经过「工作区 → 暂存区 → 版本库」三步,流程如下:

  1. 创建/修改文件:在仓库目录下新建文件(如 test.txt),或修改已有文件;
  2. 将文件添加到暂存区(暂存区用于临时存放待提交的变更):
    • 添加单个文件:git add test.txt(替换为文件名)
    • 添加所有变更文件:git add .(推荐,. 表示当前目录所有文件)
  3. 提交成功后,再次执行 git status,会显示 nothing to commit, working tree clean,表示工作区与版本库一致。

提交到版本库(生成永久版本记录,需填写提交说明,描述变更内容):

git commit -m "首次提交:添加 test.txt 文件"# 引号内为提交信息,需简洁明了

查看文件状态:

git status 

输出中会标记「未跟踪文件(Untracked)」或「已修改文件(Modified)」;

3.4 第四步:查看版本历史

如需查看过往提交记录,执行:

git log 

输出内容包含:提交 ID(一串字母数字)、提交者、提交时间、提交说明;

  • 简化输出(只显示关键信息):git log --oneline
  • 退出 log 查看:按 q 键。

四、Git 中级使用(分支与远程协作)

中级使用聚焦「协同开发」核心功能,包括分支管理、远程仓库关联、拉取/推送代码等,适合多人协作场景。

4.1 分支管理(核心:避免开发冲突)

分支相当于项目的「平行副本」,可在分支上开发新功能,完成后再合并到主分支,不影响原有代码:

  1. 合并分支(新功能开发完成后,合并到主分支):
    • 先切换到主分支:git checkout main
    • 合并目标分支:git merge feature/login(将 feature/login 分支的代码合并到 main)

删除分支(合并后无需保留的分支):

git branch -d feature/login # 删除本地分支

切换回主分支:

git checkout main # 或 master(根据实际主分支名称)

创建并切换到新分支(开发新功能时使用):

git checkout -b feature/login # 新建分支 feature/login 并切换(推荐)# 等价于:git branch feature/login(创建分支) + git checkout feature/login(切换分支)

查看当前分支:

git branch 

输出中带 * 的分支为当前分支(默认主分支为 main 或 master);

4.2 远程仓库协作(关联 GitHub/GitLab)

远程仓库是代码的「云端存储中心」,用于多人共享代码,需先在 GitHub/GitLab 注册账号并创建仓库,再进行关联:

4.2.1 关联远程仓库
  1. 查看当前远程仓库关联:git remote -v(首次关联时无输出);

关联远程仓库(替换为你的远程仓库地址,从 GitHub 仓库页面复制 HTTPS 地址):

git remote add origin https://github.com/username/your-repo.git 

(origin 是远程仓库的默认别名,可自定义)

4.2.2 推送本地代码到远程仓库

将本地版本库的代码推送到云端:

git push -u origin main # 首次推送,-u 绑定本地 main 与远程 main 分支(后续可简化为 git push)
  • 若提示需要登录:输入 GitHub/GitLab 账号密码(或使用 Token 登录,GitHub 已不支持密码直接推送,需在账号设置中生成 Personal Access Token)。
4.2.3 从远程仓库拉取代码

多人协作时,需先拉取远程最新代码,避免冲突:

git pull origin main # 拉取远程 main 分支的最新代码到本地
4.2.4 克隆远程仓库(再次获取)

若需在另一台设备获取远程仓库代码,直接克隆:

git clone https://github.com/username/your-repo.git # 自动关联远程仓库 origin
4.3 解决合并冲突(协作常见问题)

当多人修改同一文件的同一部分时,合并会出现冲突,需手动解决:

  1. 拉取代码时若提示冲突,终端会显示 Automatic merge failed; fix conflicts and then commit the result;
  2. 编辑文件,删除冲突标记(<<<<<<<=======>>>>>>>),保留需要的代码;
  3. 重新提交:git add 冲突文件名 → git commit -m "解决合并冲突:保留本地与远程核心逻辑";
  4. 推送代码:git push。

打开冲突文件,会看到类似以下标记:

<<<<<<< HEAD(当前分支的代码) 本地修改的内容 ======= 远程分支的代码 >>>>>>> origin/main(远程分支名称) 

五、Git 高级使用(效率提升与问题修复)

高级使用聚焦「效率优化」和「问题修复」,包括暂存变更、标签管理、忽略文件、撤销操作等,适合提升开发效率。

5.1 暂存变更(stash:临时保存工作区)

开发中若需切换分支,但当前工作区代码未完成不想提交,可使用 stash 暂存:

  1. 删除暂存:git stash drop stash@{0}(未恢复时删除)

恢复暂存的变更(回到原分支后):

git stash apply stash@{0}# 恢复第 0 个暂存(根据 stash list 显示的索引)# 恢复并删除暂存:git stash pop stash@{0}(推荐,避免暂存列表冗余)

查看暂存列表:

git stash list 

暂存当前工作区变更:

git stash 

暂存后工作区恢复干净,可切换分支;

5.2 标签管理(tag:标记重要版本)

标签用于标记重要版本(如发布版本 v1.0.0),方便后续回溯:

删除标签:

git tag -d v1.0.0 # 删除本地标签
git push origin --delete v1.0.0 # 删除远程标签

推送标签到远程仓库:

git push origin v1.0.0 # 推送单个标签
git push origin --tags # 推送所有标签

查看标签:

git tag # 列出所有标签
git show v1.0.0 # 查看标签详情

创建标签(在当前提交创建标签):

git tag v1.0.0 # 轻量标签(仅标记提交)# 带说明的标签(推荐,更详细):git tag -a v1.0.0 -m "版本 1.0.0:首次正式发布"
5.3 忽略文件(.gitignore:过滤无需跟踪的文件)

部分文件(如日志、缓存、IDE 配置文件)无需纳入版本控制,可通过 .gitignore 文件过滤:

  1. 保存文件后,执行 git add .gitignore 和 git commit -m "添加 .gitignore 文件",后续这些文件将不会被 Git 跟踪。

编辑 .gitignore,添加需要忽略的文件/目录(每行一个),示例:

# 忽略日志文件 *.log # 忽略缓存目录 node_modules/ # 忽略 IDE 配置文件 .idea/ .vscode/ # 忽略系统隐藏文件 .DS_Store 

在仓库根目录创建 .gitignore 文件:

touch .gitignore 
5.4 撤销操作(修改错误提交)
5.4.1 撤销工作区修改(未 add 到暂存区)
git checkout -- test.txt # 撤销 test.txt 文件的工作区修改(恢复到最近一次 commit 状态)
5.4.2 撤销暂存区修改(已 add 但未 commit)
git reset HEAD test.txt # 将 test.txt 从暂存区撤回到工作区
5.4.3 撤销最近一次提交(已 commit 但未 push)
git reset --soft HEAD~1 # 撤销最近一次 commit,保留工作区和暂存区修改(可重新提交)# 注意:--soft 保留修改,--hard 会删除修改(谨慎使用!)
5.4.4 修改最近一次提交说明(提交信息写错时)
git commit --amend # 打开编辑器修改提交说明,保存后覆盖最近一次提交
5.5 日志筛选与查找

当提交记录较多时,可筛选日志快速定位:

查看某两次提交之间的差异:

git diff 提交 ID1 提交 ID2 # 对比两个提交的代码差异(提交 ID 可通过 git log 查看)

查看指定文件的修改历史:

git log -- test.txt # 查看 test.txt 文件的所有提交记录

查找包含特定关键词的提交:

git log --grep "登录功能"# 查找提交说明包含「登录功能」的记录

六、常用命令

命令功能说明示例
git --version查看 Git 版本git --version
git config --global user.name配置全局用户名git config --global user.name "Your Name"
git config --global user.email配置全局邮箱git config --global user.email "[email protected]"
git config --list查看所有配置git config --list
git init初始化本地仓库cd ~/MyProject && git init
git clone <url>克隆远程仓库git clone https://github.com/username/repo.git
git status查看文件状态(未跟踪/已修改/已暂存)git status
git add <file>添加单个文件到暂存区git add test.txt
git add .添加当前目录所有变更到暂存区git add .
git commit -m "<msg>"提交暂存区变更到版本库git commit -m "添加登录功能代码"
git log查看提交历史git log
git log --oneline简化显示提交历史git log --oneline
git branch查看本地分支git branch
git branch <name>创建本地分支git branch feature/pay
git checkout <branch>切换分支git checkout main
git checkout -b <name>新建并切换分支git checkout -b feature/chat
git merge <branch>合并指定分支到当前分支git merge feature/chat
git branch -d <branch>删除本地分支(已合并)git branch -d feature/chat
git remote -v查看远程仓库关联git remote -v
git remote add origin <url>关联远程仓库git remote add origin https://github.com/username/repo.git
git push -u origin <branch>首次推送本地分支到远程git push -u origin main
git push推送已关联分支的变更git push
git pull origin <branch>拉取远程分支最新代码git pull origin main
git stash暂存当前工作区变更git stash
git stash list查看暂存列表git stash list
git stash apply <index>恢复指定暂存git stash apply stash@{0}
git stash pop <index>恢复并删除暂存git stash pop stash@{0}
git tag <tagname>创建轻量标签git tag v1.0.0
git tag -a <tagname> -m "<msg>"创建带说明的标签git tag -a v1.0.0 -m "正式发布 1.0 版本"
git tag查看所有标签git tag
git push origin <tagname>推送标签到远程git push origin v1.0.0
git checkout -- <file>撤销工作区文件修改git checkout -- test.txt
git reset HEAD <file>撤销暂存区文件(回到工作区)git reset HEAD test.txt
git commit --amend修改最近一次提交说明git commit --amend
git log --grep "<keyword>"按关键词筛选提交历史git log --grep "修复 bug"
git diff <commit1> <commit2>对比两次提交的差异git diff a1b2c3d e4f5g6h

目录

  1. 在 MacOS 安装和使用 Git 的方法
  2. 一、Git 介绍
  3. 二、下载与安装 Git
  4. 2.1 方式一:通过 Xcode Command Line Tools 安装(最简单)
  5. 2.2 方式二:通过 Homebrew 安装(推荐,版本可控)
  6. 2.3 方式三:通过 Git 官网安装包安装(手动配置)
  7. 三、Git 初级使用(基础操作入门)
  8. 3.1 第一步:初始配置(必做)
  9. 3.2 第二步:创建本地仓库
  10. 3.2.1 新建仓库(从零开始)
  11. 3.2.2 克隆远程仓库(从 GitHub 等平台获取已有项目)
  12. 3.3 第三步:提交文件变更(核心流程)
  13. 3.4 第四步:查看版本历史
  14. 四、Git 中级使用(分支与远程协作)
  15. 4.1 分支管理(核心:避免开发冲突)
  16. 4.2 远程仓库协作(关联 GitHub/GitLab)
  17. 4.2.1 关联远程仓库
  18. 4.2.2 推送本地代码到远程仓库
  19. 4.2.3 从远程仓库拉取代码
  20. 4.2.4 克隆远程仓库(再次获取)
  21. 4.3 解决合并冲突(协作常见问题)
  22. 五、Git 高级使用(效率提升与问题修复)
  23. 5.1 暂存变更(stash:临时保存工作区)
  24. 5.2 标签管理(tag:标记重要版本)
  25. 5.3 忽略文件(.gitignore:过滤无需跟踪的文件)
  26. 忽略日志文件 *.log # 忽略缓存目录 nodemodules/ # 忽略 IDE 配置文件 .idea/ .vscode/ # 忽略系统隐藏文件 .DSStore
  27. 5.4 撤销操作(修改错误提交)
  28. 5.4.1 撤销工作区修改(未 add 到暂存区)
  29. 5.4.2 撤销暂存区修改(已 add 但未 commit)
  30. 5.4.3 撤销最近一次提交(已 commit 但未 push)
  31. 5.4.4 修改最近一次提交说明(提交信息写错时)
  32. 5.5 日志筛选与查找
  33. 六、常用命令

更多推荐文章

查看全部
  • AI 助手效率翻倍,VSCode Copilot 自定义指令实战
  • 2026 毕业季 AIGC 检测标准与论文降重应对指南
  • mdev 与 udev:嵌入式及桌面 Linux 设备管理对比
  • LFM2.5-1.2B-Thinking 模型效果展示与性能分析
  • 前端 SSG:静态站点生成技术解析
  • Clawdbot 源码部署实战:从环境搭建到 WebChat 验证
  • C++ std::optional 详解:类型安全的可选值封装
  • 从 Obsidian App 迁移至 Obsidian.nvim 功能保留指南
  • 数据结构:单链表的概念与实现
  • 法奥机器人控制器操作与 Lua 脚本编程指南
  • 错误定位 Prompt:利用 AI 快速定位异常堆栈
  • Eclipse 安装流程及常见问题解决方法
  • OpenCode 开源 AI 编程助手完全使用指南
  • 2026 年 9 款 AI 毕业论文写作工具深度测评
  • 网络安全基础:Burp Suite 与 Wireshark 抓包分析入门
  • Spring MVC 核心注解与参数传递实战指南
  • 前端请求后端接口 404/405/500 状态码排查与解决指南
  • OpenClaw 接入飞书实战:10 分钟实现 AI 自动操作文档与表格
  • Llama-Factory 微调常见错误与解决方案指南
  • Git Cola 图形界面工具使用指南:可视化版本控制

相关免费在线工具

  • 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