在 macOS 系统中,Git 是开发者必备的版本控制工具,通过命令行操作 Git 能更高效地管理代码,本文将详细介绍 macOS 下 Git 命令行的核心操作,包括环境配置、仓库管理、分支操作、版本回退等,并结合实际场景说明命令的使用方法。

Git 环境配置
在使用 Git 命令行前,需先完成基础配置,打开终端(Terminal),执行以下命令设置用户名和邮箱,这些信息会记录在每次提交的历史中:
git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
若需配置默认编辑器(如 VS Code):
git config --global core.editor "code --wait"
查看配置信息可通过 git config --list,检查特定配置用 git config --global user.name,macOS 默认已安装 Git,但可通过 git --version 确认版本,若需升级可使用 Homebrew:brew install git。
本地仓库操作
初始化与克隆
- 初始化仓库:在项目目录下执行
git init,会生成.git隐藏文件夹,用于跟踪版本变更。 - 克隆远程仓库:通过
git clone [仓库地址]将远程仓库完整复制到本地,git clone https://github.com/user/repo.git。
文件状态与暂存
使用 git status 查看工作区文件状态(未跟踪、已修改、已暂存),新增文件需先通过 git add [文件名] 添加到暂存区,或用 git add . 添加所有修改,暂存后执行 git commit -m "提交说明",将暂存内容提交到本地仓库。

查看历史与差异
git log查看提交历史,git log --oneline以简洁模式显示。git diff查看工作区与暂存区的差异,git diff --staged查看暂存区与最新提交的差异。
分支管理
分支是 Git 的核心功能,支持并行开发,常用命令如下:
git branch:列出本地分支,-r查看远程分支,-a查看所有分支。git branch [分支名]:创建新分支。git checkout [分支名]:切换分支,-b参数可创建并切换(如git checkout -b feature)。git merge [分支名]:将指定分支合并到当前分支,例如将feature分支合并到main。git branch -d [分支名]:删除已合并的分支,-D强制删除未合并的分支。
远程仓库交互
关联与推送
首次使用需关联远程仓库:git remote add origin [仓库地址],通过 git push -u origin [分支名] 推送分支到远程,-u 参数可设置默认跟踪分支,后续推送可直接用 git push。
拉取与抓取
git pull:拉取远程仓库的更新并合并到当前分支,相当于git fetch + git merge。git fetch:仅拉取远程更新但不合并,需手动执行git merge [远程分支名]。
远程分支管理
git remote -v 查看远程仓库详细信息,git remote remove origin 移除远程关联。
版本回退与撤销
提交回退
git reset --soft [提交ID]:撤销提交,但保留修改内容在暂存区。git reset --hard [提交ID]:彻底回退到指定提交,工作区修改也会丢失(慎用)。 可通过git reflog查看操作历史,找回被删除的提交。
撤销修改
git checkout -- [文件名]:撤销工作区的未暂存修改(恢复到最后一次提交的状态)。git reset HEAD [文件名]:将已暂存的文件撤销回工作区(不删除修改)。
常见场景命令示例
| 场景 | 命令组合 |
|---|---|
| 修改最后一次提交 | git commit --amend -m "新提交说明" |
| 查看文件修改历史 | git log -p [文件名] |
| 标签管理 | git tag [标签名](创建轻量标签),git push origin [标签名](推送标签) |
| 忽略文件 | 在项目根目录创建 .gitignore 文件,添加需忽略的文件或目录 |
相关问答 FAQs
问题1:如何解决 Git 提交时提示 "Please tell me who you are" 的错误?
解答:这是因为未配置全局用户信息,在终端执行以下命令设置用户名和邮箱:

git config --global user.name "Your Name" git config --global user.email "your.email@example.com"
配置完成后即可正常提交。
问题2:如何撤销已推送到远程仓库的提交?
解答:可通过 git revert 或 git reset 结合强制推送实现,推荐使用 git revert,因为它会创建新提交来撤销修改,不影响历史记录:
- 找到要撤销的提交 ID(
git log查看); - 执行
git revert [提交ID],按提示提交; - 推送到远程:
git push origin [分支名]。
若需彻底删除提交(不推荐),可用git reset --hard [提交ID]后强制推送git push -f origin [分支名],但可能导致团队成员代码冲突。
