一、安装与配置
1.1 安装 Git
macOS(使用 Homebrew):
brew install gitWindows:
- 官网下载:https://git-scm.com/downloads
- 或使用
winget install Git.Git
1.2 配置用户信息
# 全局配置(所有项目)
git config --global user.name "你的名字"
git config --global user.email "[email protected]"
# 查看配置
git config --list
# 查看某个配置
git config user.name多账户配置
如果需要在同一台电脑上配置多个 Git 账户,可以使用条件配置:
# 公司项目单独配置 git config user.name "公司名" git config user.email "公司邮箱"
二、仓库操作
2.1 创建与克隆
# 初始化本地仓库
git init
# 克隆远程仓库
git clone <仓库地址>
# 克隆指定分支
git clone -b dev <仓库地址>
# 绑定远程仓库
git remote add origin <仓库地址>2.2 查看状态
# 查看工作区状态
git status
# 查看远程仓库
git remote -v
# 查看分支
git branch -a三、基本工作流
3.1 文件操作四部曲
# 1. 添加文件到暂存区
git add <文件名> # 添加指定文件
git add . # 添加所有修改
git add *.js # 添加所有.js 文件
# 2. 提交到本地仓库
git commit -m "提交说明"
# 3. 推送到远程仓库
git push origin main
# 4. 拉取远程代码
git pull注意事项
git add .表示添加所有修改(包括新增、修改、删除)- 提交前务必确认修改内容:
git diff- 敏感信息(密码、密钥)不要提交
3.2 分支操作
# 创建分支
git branch <分支名>
# 切换分支
git checkout <分支名>
# 创建并切换分支
git checkout -b <分支名>
# 或 git switch -c <分支名>
# 合并分支(将 dev 合并到当前分支)
git merge <分支名>
# 删除分支
git branch -d <分支名> # 安全删除
git branch -D <分支名> # 强制删除
# 查看分支合并情况
git branch --merged # 已合并
git branch --no-merged # 未合并3.3 分支命名规范
| 前缀 | 说明 | 示例 |
|---|---|---|
feature/ | 新功能 | feature/user-login |
fix/ | Bug 修复 | fix/login-error |
hotfix/ | 紧急修复 | hotfix/security-patch |
release/ | 发布分支 | release/v1.0.0 |
dev/ | 开发分支 | dev |
四、高级命令
4.1 版本回退
# 查看提交历史
git log --oneline
# 回退到指定版本
git reset --hard <commit-id>
# 仅回退提交记录,保留修改
git reset --soft <commit-id>
# 撤销上一次的提交
git reset --soft HEAD~14.2 修改提交
# 修改上一次的提交信息
git commit --amend -m "新的提交信息"
# 添加遗漏的文件到上一次提交
git add <遗漏文件>
git commit --amend --no-edit4.3 Cherry-Pick
# 将某个提交应用到当前分支
git cherry-pick <commit-id>
# 示例:将 dev 分支的提交应用到 main
git checkout main
git cherry-pick dev使用场景
cherry-pick常用于将 dev 分支修复的 bug 提交应用到 main 分支
4.4 变基(Rebase)
# 交互式变基
git rebase -i HEAD~3
# 拉取远程最新代码并变基
git fetch origin
git rebase origin/main五、SSH 配置
5.1 生成 SSH Key
# 生成 SSH Key
ssh-keygen -t rsa -C "[email protected]"
# 一路回车即可5.2 查看公钥
# 查看公钥内容
cat ~/.ssh/id_rsa.pub
# 复制公钥内容到 GitHub/Gitee5.3 测试连接
# 测试 GitHub 连接
ssh -T [email protected]
# 测试 Gitee 连接
ssh -T [email protected]六、常见问题
6.1 移除 node_modules
# 如果 node_modules 已被跟踪
git rm -r --cached node_modules
git commit -m "移除 node_modules"
git push
# 添加到 .gitignore
echo "node_modules/" >> .gitignore6.2 大小写问题
# Git 默认忽略大小写,如需区分大小写
git config core.ignorecase false6.3 清除缓存
# 清除 Git 缓存
git rm -r --cached .
git add .
git commit -m "清除缓存"6.4 强制推送
危险操作
强制推送会覆盖远程历史,仅在必要时使用
# 强制推送
git push -f origin main
# 更安全的方式:如果远程有更新则失败
git push --force-with-lease origin main七、Git 命令速查表
| 命令 | 说明 |
|---|---|
git init | 初始化仓库 |
git clone | 克隆仓库 |
git add | 添加到暂存区 |
git commit | 提交到本地 |
git push | 推送到远程 |
git pull | 拉取远程代码 |
git merge | 合并分支 |
git checkout | 切换分支 |
git branch | 查看/创建分支 |
git log | 查看历史 |
git diff | 查看差异 |
git reset | 回退版本 |
git cherry-pick | 挑选提交 |
git rebase | 变基 |