跳到主要内容

Git 配置与常用操作

macOS 环境下 Git 的安装、基础配置与 SSH 密钥配置,以及日常提交、分支操作和常见问题的处理速查。

安装 Git​

macOS 通常预装了 Git,但版本可能较旧。先在终端(应用程序 -> 实用工具 -> 终端)中检查版本:

git --version

显示版本号(如 git version 2.39.2 (Apple Git-143))说明已安装;提示 command not found 则需要安装。

使用 Homebrew 安装(推荐)​

Homebrew 是 macOS 上最流行的包管理器:

# 安装 Homebrew(如果还没有安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装 Git
brew install git

其他安装方式​

  • 官方安装程序:从 Git 官网 下载 macOS 安装程序并直接安装。
  • Xcode Command Line Tools:在终端执行 xcode-select --install,安装的命令行工具中包含 Git。

安装完成后再次运行 git --version 确认安装成功且版本较新。

基础配置​

配置用户信息后,每次提交 Git 才能记录提交者:

# 用户名(通常使用英文名或 GitHub 用户名)
git config --global user.name "Your Name"

# 邮箱(必须与 GitHub/GitLab 等代码托管平台上注册的邮箱一致)
git config --global user.email "your.email@example.com"

可选配置:

# 设置默认的文本编辑器(VS Code)
git config --global core.editor "code --wait"

# 或使用 macOS 自带的 Nano
git config --global core.editor "nano"

# 让 Git 输出带颜色,方便阅读
git config --global color.ui auto

查看所有配置项:

git config --list

配置 SSH 密钥​

配置 SSH 密钥后,与远程仓库(如 GitHub)通信时无需每次输入密码。

  1. 生成新的 SSH 密钥(替换为你的邮箱):

    ssh-keygen -t ed25519 -C "your.email@example.com"
    • 提示 Enter file in which to save the key 时直接回车,使用默认路径 ~/.ssh/id_ed25519;
    • 提示 Enter passphrase 时可设置密码增加安全性,也可直接回车留空。
  2. 将 SSH 密钥添加到 ssh-agent:

    # 启动 ssh-agent
    eval "$(ssh-agent -s)"

    # 将 SSH 私钥添加到 ssh-agent
    ssh-add ~/.ssh/id_ed25519
  3. 将公钥添加到 GitHub/GitLab 账户:

    cat ~/.ssh/id_ed25519.pub

    登录 GitHub 后依次点击右上角头像 -> Settings -> SSH and GPG keys -> New SSH key,在 "Title" 中起个名字(如 My MacBook),将公钥内容粘贴到 "Key" 框中并保存。

  4. 测试连接:

    ssh -T git@github.com

    看到 Hi username! You've successfully authenticated... 的欢迎信息即配置成功。

代码提交规范​

  • feat: 新功能
  • fix: 修复问题
  • docs: 文档更新
  • style: 代码格式(不影响代码运行的变动)
  • refactor: 代码重构(既不是修复 bug 也不是添加新功能)
  • perf: 性能优化
  • test: 添加或更新测试
  • build: 构建系统或外部依赖的更改(如 webpack、npm)
  • ci: 持续集成相关的变动
  • chore: 其他不修改 src 或测试文件的更改
  • revert: 回滚某次提交

常用命令​

基础命令​

git add . # 将文件添加到暂存区
git status # 查看状态
git commit -m "注释内容" # 将暂存区文件提交至版本库
git log # 查看近期提交状态
git branch # 查看分支
git branch dev # 新建 dev 分支
git checkout dev # 切换到 dev 分支
git push -u origin 分支名称 # 第一次推送分支到远程仓库(需先切换到该分支,-u 表示首次关联)
git merge 分支名称 # 先切换到目标分支,再合并指定分支

如果不小心在 master 分支上写了代码,直接执行 git checkout -b test 即可将修改分配到 test 分支,再执行 git add 等后续操作。

日志与差异​

git log # 查看历史记录
git log -p # 查看详细历史
git log --stat # 查看简要统计

git show # 查看当前 commit 的改动内容
git show commitID # 查看某个具体 commit 的改动内容
git show commitID a.txt # 查看指定 commit 中的指定文件

git diff # 比对工作目录和暂存区
git diff --staged # 比对暂存区和上一次提交
git diff HEAD # 比对工作目录和上一次提交
git reflog # 查看记录的每一条指令

分支操作​

# 克隆与切换
git checkout dev # 切换到 dev 分支
git checkout -b dev # 创建并立即切换到 dev 子分支
git branch -al # 查看所有本地和远程分支
git checkout -b 本地分支 origin/远程分支 # 检出远程分支到本地
git clone -b yourBranch <仓库地址> # 克隆远程仓库的某个分支

# 推送
git push origin 本地分支:远程分支 # 提交本地分支到远程分支
git push origin demo:demo # 推送 demo 分支(远程不存在时自动创建)

# 删除
git branch -d bug # 删除本地 bug 分支
git push origin --delete demo # 删除远程 demo 分支

# 同步本地与远端
git remote show origin # 查看本地分支和追踪情况
git remote prune origin # 同步删除远端已不存在的分支

强制覆盖本地代码​

git fetch --all
git reset --hard origin/master
git pull

变基​

rebase 把指定的 commit 以及它所在的 commit 串,以指定的目标 commit 为基础,依次重新提交:

git checkout branch1
git rebase master

# rebase 之后切回 master 再 merge,把 master 移到最新的 commit
git checkout master
git merge branch1

git rebase --help # 查看帮助

提交修正与回退​

修改最近一次提交(amend)​

git commit --amend 不会生成新的 commit,而是在之前的 commit 上修改,适合多次修改后还未 push 的场景:

git add a.txt # 更新一个文件
git commit # 提交(还未 push)
# 重新编辑 a.txt
git add a.txt # 再次更新
git commit --amend # 修改之前的 commit,而不是再生成一个

修改已经 push 的 commit 信息(内容在自己的分支上):

  1. git commit --amend 进入 vim 编辑器;
  2. 按 i 进入编辑模式,修改提交信息;
  3. 按 Esc,输入 :wq 保存退出;
  4. 执行 git push -f 强制推送。

回退提交(reset)​

错误提交到了版本库时,需要撤销版本库的修改才能解决。git reset 有三个选项:

git reset --soft commitID # 撤销版本库,不修改暂存区和工作区
git reset --mixed commitID # 撤销版本库和暂存区,不修改工作区
git reset --hard commitID # 彻底将工作区、暂存区和版本库恢复到指定版本

具体步骤:

git log # 查看日志,复制要回退到的 commitID
git reset --hard commitID # 强制回退(soft / mixed / hard 视情况而定)
git push origin HEAD --force # 推送到远程

撤销已合并的提交(revert)​

错误内容已经合并到 master 时,用 git revert 增加一条内容相反的新 commit 来抵消:

git revert HEAD # 撤销最近一次提交
git revert HEAD~1 # 撤销上上次的提交(数字从 0 开始)
git revert 0ffaacc # 撤销指定提交

撤销暂存区文件​

git rm --cached 文件名 # 只删除暂存区的文件,不影响工作区
git rm -f 文件名 # 同时删除暂存区和工作区的文件

文件或文件夹重命名​

git mv -f oldfolder newfolder
git add -u newfolder # -u 选项会更新已经追踪的文件和文件夹
git commit -m "rename folder"
git push origin yourBranch

SSH 拉取报错处理​

git pull 通过 SSH(端口 22)连接 Gitee 失败、连接被拒绝,通常是网络环境(公司、学校等)屏蔽了 22 端口,或 SSH 服务配置问题。可将远程仓库的 URL 改为 HTTPS 地址:

git remote set-url origin https://gitee.com/你的用户名/你的仓库名.git

git pull

例如:

git remote set-url origin https://gitee.com/houfei/open-webui.git

第一次拉取会提示输入 Gitee 的用户名和密码(或个人访问令牌)。建议使用个人访问令牌(Personal Access Token)代替密码,更安全。