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
相关推荐
CS_浮鱼1 小时前
【Linux编程】线程同步与互斥
linux·网络·c++
h***38184 小时前
SQL 注入漏洞原理以及修复方法
网络·数据库·sql
T***16074 小时前
Git增强现实案例
git·ar
RXXW_Dor5 小时前
西门子EtherNet/IP 适配器 通过 EtherNet/IP 将第三方控制系统连接到 SIMATIC S7 控制器
linux·网络·tcp/ip
Mr.H01275 小时前
(上册)TCP 服务器核心流程实操指南
linux·服务器·网络·tcp/ip
白玉cfc5 小时前
【iOS】多线程基础
macos·ios
Arva .5 小时前
git常用
git
久莜5 小时前
【Git】使用教程
git
饭九钦vlog5 小时前
修复重装机kali机器上不了网络域名问题一键脚本
服务器·网络·php