当前位置: 首页 > news >正文

在 Mac 上使用 Git 拉取项目:完整指南

目录

  1. 前置条件

  2. 安装 Git

  3. 配置 Git

  4. 生成 SSH Key(推荐方式)

  5. 将 SSH Key 添加到 GitHub/GitLab

  6. 克隆(拉取)项目

  7. 常见问题排查


1. 前置条件

  • 一台运行 macOS 的电脑

  • 已安装 Xcode Command Line Tools(Git 和编译工具依赖)

  • GitHub、GitLab 或其他 Git 平台账号

  • 项目仓库地址(可为 SSH 或 HTTPS 格式)


2. 安装 Git

方法一:通过 Homebrew 安装(推荐)

brew install git

安装完成后,输入以下命令检查是否安装成功:

git --version

输出示例:

git version 2.42.0

方法二:通过 Xcode 命令行工具安装

xcode-select --install

安装完成后即可使用 Git。


3. 配置 Git

首次使用 Git,需配置用户名和邮箱:

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱@example.com"

查看当前的 Git 配置信息:

git config --global --list

4. 生成 SSH Key(推荐方式)

为了避免频繁输入用户名和密码,建议使用 SSH 方式连接仓库。

生成 SSH 密钥

ssh-keygen -t ed25519 -C "你的邮箱@example.com"

按提示一路回车,默认会生成以下两个文件:

  • 私钥:~/.ssh/id_ed25519

  • 公钥:~/.ssh/id_ed25519.pub

启动 SSH agent 并添加私钥

eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

5. 将 SSH Key 添加到 GitHub/GitLab

复制公钥内容到剪贴板

pbcopy < ~/.ssh/id_ed25519.pub

添加到 Git 平台

  • GitHub: 登录后进入 https://github.com/settings/keys

  • GitLab: 登录后进入 https://gitlab.com/-/profile/keys

点击 "New SSH Key",粘贴内容,填写标题,保存即可。


6. 克隆(拉取)项目

使用 SSH 地址克隆项目(推荐)

git clone git@github.com:用户名/仓库名.git

示例:

git clone git@github.com:octocat/Hello-World.git

使用 HTTPS 地址克隆项目(不推荐)

git clone https://github.com/用户名/仓库名.git

这种方式在每次推送或拉取时通常会要求输入用户名和密码(或者令牌),不够方便。


7. 常见问题排查

问题 1:找不到 git 命令

错误提示:

zsh: command not found: git

解决方法:确认是否已正确安装 Git,可以使用 brew install git 重新安装。


问题 2:SSH 报错:Permission denied (publickey)

可能原因及解决方案:

  • 公钥未添加到 Git 平台账号中

  • Git URL 使用错误,应使用 SSH 格式:git@github.com:xxx/xxx.git

  • 未启动 SSH agent,或未添加 SSH key:重新运行以下命令:

eval "$(ssh-agent -s)"
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

参考资料

  • Git 官方网站:Git

  • GitHub SSH 配置指南:Connecting to GitHub with SSH - GitHub Docs

  • Homebrew 官网:Homebrew — The Missing Package Manager for macOS (or Linux)

http://www.dtcms.com/a/271788.html

相关文章:

  • 【算法笔记】6.LeetCode-Hot100-链表专项
  • selenium中find_element()用法进行元素定位
  • 在mac m1基于llama.cpp运行deepseek
  • Spring Boot 企业级动态权限全栈深度解决方案,设计思路,代码分析
  • C#基础:Winform桌面开发中窗体之间的数据传递
  • 【WEB】Polar靶场 Day8 详细笔记
  • 力扣 hot100 Day40
  • fastMCP基础(一)
  • imx6ull-裸机学习实验16——I2C 实验
  • 解锁localtime:使用技巧与避坑指南
  • shell 字符串常用操作
  • 网安系列【16】之Weblogic和jboss漏洞
  • 深入剖析 ADL:C++ 中的依赖查找机制及其编译错误案例分析
  • 短剧分销系统开发指南:从0到1构建高效变现平台
  • 基于双向cuk斩波均衡电路的串联锂离子均衡系统设计
  • 文心一言4.5开源部署指南及文学领域测评
  • frp内网穿透下创建FTP(解决FTP“服务器回应不可路由的地址。使用服务器地址替代”错误)
  • 【macos用镜像站体验】Claude Code入门使用教程和常用命令
  • JS实现页面实时时间显示/倒计时
  • SMTPman,smtp的端口号是多少全面解析配置
  • 【数据结构】时间复杂度和空间复杂度
  • 杰赛S65_中星微ZX296716免拆刷机教程解决网络错误和时钟问题
  • Java线程池原理概述
  • 浏览器 实时监听音量 实时语音识别 vue js
  • 解析LLM层裁剪:Qwen实战指南
  • 搭建自动化工作流:探寻解放双手的有效方案(1)
  • Spring Boot项目中大文件上传的高级实践与性能优化
  • Spring for Apache Pulsar->Reactive Support->Message Consumption
  • Socket服务器代理工具及服务端网络转发中枢
  • 【Action帧简要分析】