一、仓库基础操作
| 命令 | 作用 | 示例 |
|---|---|---|
git init |
初始化新仓库 | git init project |
git clone |
克隆远程仓库 | git clone https://github.com/user/repo.git |
git status |
查看工作区状态 | git status -s(简洁模式) |
二、文件操作管理
| 命令 | 作用 | 注意事项 |
|---|---|---|
git add |
添加文件到暂存区 | git add .(添加全部) git add *.cpp(通配符) |
git rm |
删除文件 | git rm --cached file(保留本地文件) |
git mv |
移动/重命名文件 | git mv old.txt new.txt |
三、提交历史管理
| 命令 | 作用 | 使用场景 |
|---|---|---|
git commit |
提交变更 | git commit -m "fix: 修复登录逻辑" |
git log |
查看提交历史 | git log --oneline --graph(图形化查看) |
git diff |
对比差异 | git diff HEAD~2..HEAD(对比最近两次提交) |
四、分支管理
| 命令 | 作用 | 组合技巧 |
|---|---|---|
git branch |
分支操作 | git branch -d feature(删除分支) |
git checkout |
切换分支 | git checkout -b dev(创建并切换) |
git merge |
合并分支 | git merge --no-ff feature(保留合并历史) |
git rebase |
变基操作 | git rebase -i HEAD~3(交互式合并提交) |
五、远程协作
| 命令 | 作用 | 典型流程 |
|---|---|---|
git remote |
管理远程地址 | git remote -v(查看远程地址) |
git push |
推送代码 | git push origin main --force(强制推送,慎用) |
git pull |
拉取更新 | git pull origin dev --rebase(变基式拉取) |
git fetch |
获取远程更新 | git fetch && git merge origin/main |
六、撤销与恢复
| 场景 | 命令 | 说明 |
|---|---|---|
| 撤销未add修改 | git restore <file> |
还原到最近提交状态 |
| 撤销已add文件 | git reset HEAD <file> |
从暂存区移除 |
| 修改提交信息 | git commit --amend |
修改最后一次提交 |
| 回退到历史版本 | git reset --hard HEAD^ |
彻底回退(慎用) |
| 恢复误删文件 | git checkout HEAD -- <file> |
从版本库恢复文件 |
七、高级操作技巧
-
储藏修改
git stash save "WIP: 临时保存" # 储藏当前修改 git stash list # 查看储藏列表 git stash pop # 恢复最近储藏 -
标签管理
git tag v1.0.0 # 创建轻量标签 git tag -a v1.1.0 -m "正式版" # 创建含备注的标签 git push origin --tags # 推送所有标签 -
子模块管理
git submodule add https://github.com/lib/lib.git git submodule update --init --recursive
八、典型工作流示例
# 日常开发流程
git checkout -b feature/login # 创建功能分支
git add . # 添加修改文件
git commit -m "完成登录功能开发" # 提交修改
git push origin feature/login # 推送分支
# 代码合并流程
git checkout main # 切换主分支
git pull origin main # 获取最新代码
git merge feature/login # 合并功能分支
git push origin main # 推送合并结果
九、配置优化建议
# 常用配置项
git config --global alias.co checkout # 设置命令别名
git config --global core.editor "code --wait" # 设置VS Code为默认编辑器
git config --global credential.helper cache # 缓存密码15分钟
# 生成SSH密钥
ssh-keygen -t ed25519 -C "your_email@example.com"
十、问题诊断工具
| 命令 | 用途 |
|---|---|
git reflog |
查看所有操作历史(救命命令) |
git bisect |
二分法定位问题提交 |
git blame |
查看文件修改历史 |