MAC编程:在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. 输入以下命令,系统会自动提示安装 Command Line Tools:

    bash 复制代码
    git --version
  3. 弹出安装弹窗后,点击「安装」,等待系统自动下载并配置完成;

  4. 验证安装:再次输入 git --version,若输出类似 git version 2.39.3 (Apple Git-145) 的版本信息,说明安装成功。

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

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

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

    bash 复制代码
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. 安装完成后,执行以下命令安装 Git:

    bash 复制代码
    brew install git
  3. 验证安装:输入 git --version,输出类似 git version 2.45.1 的信息即成功(版本号可能随更新变化);

  4. 后续更新 Git 可执行:

    bash 复制代码
    brew update && brew upgrade git

2.3 方式三:通过 Git 官网安装包安装(手动配置)

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

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

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

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

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

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

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

    bash 复制代码
    git config --global user.name "Your Name"
  2. 配置邮箱(替换为你的邮箱):

    bash 复制代码
    git config --global user.email "your.email@example.com"
  3. 查看配置是否生效:

    bash 复制代码
    git config --list

    输出中应包含上述配置的 user.nameuser.email

3.2 第二步:创建本地仓库

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

3.2.1 新建仓库(从零开始)
  1. 终端中进入需作为仓库的文件夹(例如 Documents/MyProject):

    bash 复制代码
    cd ~/Documents/MyProject  # 替换为你的文件夹路径
  2. 初始化仓库,生成 .git 隐藏目录(存储版本信息):

    bash 复制代码
    git init

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

3.2.2 克隆远程仓库(从 GitHub 等平台获取已有项目)

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

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

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

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

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

  1. 创建/修改文件 :在仓库目录下新建文件(如 test.txt),或修改已有文件;

  2. 查看文件状态

    bash 复制代码
    git status

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

  3. 将文件添加到暂存区 (暂存区用于临时存放待提交的变更):

    • 添加单个文件:git add test.txt(替换为文件名)
    • 添加所有变更文件:git add .(推荐,. 表示当前目录所有文件)
  4. 提交到版本库 (生成永久版本记录,需填写提交说明,描述变更内容):

    bash 复制代码
    git commit -m "首次提交:添加 test.txt 文件"  # 引号内为提交信息,需简洁明了
  5. 提交成功后,再次执行 git status,会显示 nothing to commit, working tree clean,表示工作区与版本库一致。

3.4 第四步:查看版本历史

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

bash 复制代码
git log

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

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

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

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

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

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

  1. 查看当前分支

    bash 复制代码
    git branch

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

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

    bash 复制代码
    git checkout -b feature/login  # 新建分支 feature/login 并切换(推荐)
    # 等价于:git branch feature/login(创建分支) + git checkout feature/login(切换分支)
  3. 切换回主分支

    bash 复制代码
    git checkout main  # 或 master(根据实际主分支名称)
  4. 合并分支 (新功能开发完成后,合并到主分支):

    • 先切换到主分支:git checkout main
    • 合并目标分支:git merge feature/login(将 feature/login 分支的代码合并到 main)
  5. 删除分支 (合并后无需保留的分支):

    bash 复制代码
    git branch -d feature/login  # 删除本地分支

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

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

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

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

    bash 复制代码
    git remote add origin https://github.com/username/your-repo.git

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

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

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

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

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

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

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

bash 复制代码
git clone https://github.com/username/your-repo.git  # 自动关联远程仓库 origin

4.3 解决合并冲突(协作常见问题)

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

  1. 拉取代码时若提示冲突,终端会显示 Automatic merge failed; fix conflicts and then commit the result

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

    复制代码
    <<<<<<< HEAD(当前分支的代码)
    本地修改的内容
    =======
    远程分支的代码
    >>>>>>> origin/main(远程分支名称)
  3. 编辑文件,删除冲突标记(<<<<<<< ======= >>>>>>>),保留需要的代码;

  4. 重新提交:git add 冲突文件名git commit -m "解决合并冲突:保留本地与远程核心逻辑"

  5. 推送代码:git push

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

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

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

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

  1. 暂存当前工作区变更:

    bash 复制代码
    git stash

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

  2. 查看暂存列表:

    bash 复制代码
    git stash list
  3. 恢复暂存的变更(回到原分支后):

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

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

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

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

    bash 复制代码
    git tag v1.0.0  # 轻量标签(仅标记提交)
    # 带说明的标签(推荐,更详细):git tag -a v1.0.0 -m "版本 1.0.0:首次正式发布"
  2. 查看标签

    bash 复制代码
    git tag  # 列出所有标签
    git show v1.0.0  # 查看标签详情
  3. 推送标签到远程仓库

    bash 复制代码
    git push origin v1.0.0  # 推送单个标签
    git push origin --tags  # 推送所有标签
  4. 删除标签

    bash 复制代码
    git tag -d v1.0.0  # 删除本地标签
    git push origin --delete v1.0.0  # 删除远程标签

5.3 忽略文件(.gitignore:过滤无需跟踪的文件)

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

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

    bash 复制代码
    touch .gitignore
  2. 编辑 .gitignore,添加需要忽略的文件/目录(每行一个),示例:

    复制代码
    # 忽略日志文件
    *.log
    # 忽略缓存目录
    node_modules/
    # 忽略 IDE 配置文件
    .idea/
    .vscode/
    # 忽略系统隐藏文件
    .DS_Store
  3. 保存文件后,执行 git add .gitignoregit commit -m "添加 .gitignore 文件",后续这些文件将不会被 Git 跟踪。

5.4 撤销操作(修改错误提交)

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

5.5 日志筛选与查找

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

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

    bash 复制代码
    git log --grep "登录功能"  # 查找提交说明包含「登录功能」的记录
  2. 查看指定文件的修改历史:

    bash 复制代码
    git log -- test.txt  # 查看 test.txt 文件的所有提交记录
  3. 查看某两次提交之间的差异:

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

六、常用命令

命令 功能说明 示例
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 "your.email@example.com"
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
相关推荐
Bobolink_20 分钟前
跨境业务网络环境评估,“干净、一致、独享”三个关键指标
开发语言·网络·php·跨境网络·网络环境
广州灵眸科技有限公司2 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能
梦想三三2 小时前
Git与GitHub基础入门:从零开始掌握版本控制与代码托管(完整图文教程)
人工智能·git·elasticsearch·github
老吴胡编3 小时前
eknife 2026.07.10 v0.0.6 更新 —— 支持文件加解密
嵌入式硬件·个人开发
Hyyy3 小时前
为什么 macOS 应用一换 Bundle ID,之前授予的权限就全失效了?
macos·electron
星恒讯工业路由器3 小时前
VLAN在工业网络中为何越来越重要
网络·信息与通信·vlan·交换机·工业网络·网络隔离
p似笑非笑3 小时前
实战验证——把 SDK 塞进一个 macOS 原生 Agent 应用
macos
rcms152702692184 小时前
HITEK A1052100N-01 以太网端口模块
网络
KaMeidebaby4 小时前
卡梅德生物技术快报|抗体合成:多肽抗体合成工程化方案:Nsp2 保守肽多抗制备与多维度验证
前端·网络·数据库·人工智能·算法
青禾网络4 小时前
前端做音画匹配这件事,我从"随机塞"到"AI 自动对齐"
前端·github