MAC编程:在MACOS安装和使用 Git 的方法

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. 弹出安装弹窗后,点击「安装」,等待系统自动下载并配置完成;
  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 installgit

若未安装 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.nameuser.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 

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

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 .gitignoregit 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 日志筛选与查找

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

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

gitdiff 提交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

Read more

一文看懂:AI编程工具深度对比:Cursor、Copilot、Trae与Claude Code

一文看懂:AI编程工具深度对比:Cursor、Copilot、Trae与Claude Code

AI编程工具深度对比:Cursor、Copilot、Trae与Claude Code 引言 在人工智能技术蓬勃发展的今天,AI编程工具已成为开发者提高效率的重要助手。从早期的代码补全插件到如今能够理解整个代码库的智能助手,AI编程工具正在不断进化。本文将对当前主流的AI编程工具——Cursor、GitHub Copilot、Trae和Claude Code进行全面对比,帮助开发者选择最适合自己的工具。 主流AI编程工具概述 Cursor Cursor是一款基于VSCode的AI驱动代码编辑器,它最大的特点是能够理解整个代码库的上下文,提供智能的代码补全和重构建议。Cursor默认使用Claude-3.5-Sonnet模型,即使是OpenAI投资的公司,也选择了Claude模型作为默认选项,这足以说明其在代码生成领域的优势。 GitHub Copilot GitHub Copilot是由GitHub与OpenAI合作开发的AI编码助手,集成在VSCode、Visual Studio等主流编辑器中。它基于OpenAI的模型,能够根据注释和上下文自动生成代码,是AI编程工具

By Ne0inhk

【GitHub项目推荐--开源游戏列表】

Trilarion/opensourcegames: Technical infos of open source games. 网站地址:OSGL OSGL(开源游戏列表)是一份开源游戏、游戏框架和游戏制作工具的列表。这些项目至少处于测试阶段,代码基础会构建成可执行演示。代码必须属于自由开源软件(FOSS)允许他人修改和分享的许可。每条条目都会收集相关信息,包括 代码仓库、下载功能和构建说明。 游戏 (1801)- 工具 (49)- 框架 (66)- 库 (16) 按类别分类: 动作 (357)、 冒险 (66)、 街机 (221)、 棋盘 (28)、 卡牌 (26)、 教育(14)、 框架 (66)、 游戏引擎

By Ne0inhk
GitHub上值得Star的计算机视觉项目

GitHub上值得Star的计算机视觉项目

GitHub上值得Star的计算机视觉项目 * 前言 * 一、OpenCV:计算机视觉领域的瑞士军刀 * 1.1 项目简介 * 1.2 核心功能与技术特点 * 1.3 代码示例 * 二、YOLO 系列:实时目标检测的领导者 * 2.1 项目简介 * 2.2 核心功能与技术特点 * 2.3 代码示例 * 三、Detectron2:Facebook AI Research 的目标检测利器 * 3.1 项目简介 * 3.2 核心功能与技术特点 * 3.3 代码示例 * 四、Mask R-CNN:实例分割的经典模型 * 4.1 项目简介 * 4.

By Ne0inhk

Ollama+VSCode插件:本地代码生成与解释工作流终极指南

Ollama+VSCode插件:本地代码生成与解释工作流终极指南 【免费下载链接】ollamaGet up and running with Llama 2 and other large language models locally 项目地址: https://gitcode.com/gh_mirrors/ol/ollama 想要在本地环境中高效地进行代码生成和解释吗?Ollama结合VSCode插件为你提供了完美的解决方案。本文将详细介绍如何搭建和使用这一强大的本地AI开发工作流,让你在不依赖云端服务的情况下享受智能编程体验。 🚀 为什么选择Ollama本地AI开发? Ollama是一个开源项目,让你能够在本地运行Llama 2等大型语言模型。与VSCode插件结合后,你可以直接在编辑器中进行代码生成、解释和优化,无需担心数据隐私和网络延迟问题。 📋 环境准备与安装步骤 第一步:安装Ollama核心 首先需要安装Ollama核心组件,支持Windows、MacOS和Linux三大平台: * Windows: 下载安装程序一键安装 * MacOS:

By Ne0inhk