一、安装与配置

1.1 安装 Git

macOS(使用 Homebrew):

brew install git

Windows

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~1

4.2 修改提交

# 修改上一次的提交信息
git commit --amend -m "新的提交信息"
 
# 添加遗漏的文件到上一次提交
git add <遗漏文>
git commit --amend --no-edit

4.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/Gitee

5.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/" >> .gitignore

6.2 大小写问题

# Git 默认忽略大小写,如需区分大小写
git config core.ignorecase false

6.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变基

相关链接