一、仓库 & 配置

git init                 # 初始化仓库
git clone <url>          # 克隆远程仓库

git config --global user.name "Your Name"
git config --global user.email "you@email.com"

git config --list        # 查看配置


二、文件状态 & 基础操作(每天都在用)

git status               # 查看当前状态
git add file.php         # 添加单个文件
git add .                # 添加所有改动
git commit -m "说明"     # 提交
git commit -am "说明"    # add + commit(仅限已被跟踪的文件)

📌 推荐提交规范

feat: 新功能
fix: 修复问题
refactor: 重构
perf: 性能优化
docs: 文档


三、查看历史 & 对比(排查问题必备)

git log                  # 提交历史
git log --oneline        # 简洁模式
git log --graph --all    # 分支图

git diff                 # 未 add 的修改
git diff --cached        # 已 add 未 commit
git diff commit1 commit2 # 两次提交对比


四、分支操作(重点 ⭐)

git branch               # 查看本地分支
git branch -a            # 查看所有分支
git branch dev           # 新建分支
git checkout dev         # 切换分支
git checkout -b dev      # 新建并切换

git branch -d dev        # 删除分支
git branch -D dev        # 强制删除


五、合并 & 变基

1️⃣ merge(最常用)

git checkout dev
git merge main

解决冲突后:

git add .
git commit

2️⃣ rebase(保持提交线性)

git checkout dev
git rebase main

冲突:

git rebase --continue
git rebase --abort


六、远程仓库(push / pull)

git remote -v            # 查看远程地址
git remote add origin <url>

git fetch                # 拉取远程(不合并)
git pull                 # fetch + merge

git push origin dev      # 推送分支
git push -u origin dev   # 首次推送并建立关联


七、撤销 & 回退(救命命令 🚑)

撤销未提交

git restore file.php           # 撤销修改
git restore --staged file.php  # 取消 add

回退提交

git reset --soft HEAD~1   # 撤销 commit,保留代码
git reset --hard HEAD~1   # 撤销 commit + 代码(慎用)

回到某个历史版本(不改历史)

git revert <commit_id>


八、stash(临时保存现场)

git stash                # 保存当前修改
git stash list
git stash pop            # 恢复并删除
git stash apply          # 恢复不删除
git stash drop           # 删除

📌 非常适合:切分支前、紧急修 bug



九、标签(发版用)

git tag v1.0.0
git tag                  # 查看标签
git push origin v1.0.0
git push origin --tags


十、排查 & 修复神器(进阶)

git blame file.php       # 查看每行是谁改的
git show commit_id       # 查看某次提交详情

git reflog               # 找回“误删”的提交


十一、忽略文件

# .gitignore
.DS_Store
/vendor
/node_modules
.env

已跟踪文件需:

git rm --cached file


十二、🔥 高频实战组合

main 合并到 dev(你之前问过的)

git checkout dev
git fetch origin
git merge origin/main

放弃本地所有修改

git reset --hard
git clean -fd

查看当前分支基于谁

git branch -vv