How to use git
本地开发阶段
仓库操作
git init
初始化本地仓库git clone < repo >
克隆远程仓库git remote -v
查看远程仓库地址git remote add origin < url >
添加远程仓库地址
分支管理
git branch
查看分支git branch dev
创建分支git checkout dev/git switch dev
切换分支git checkout -b feature-x
新建并切换分支git branch -d branch-name
删除本地分支git branch -vv
查看本地分支与远程分支的关系
代码修改
git status
查看修改状态git diff
查看改动内容git add file
添加到暂存区git add .
添加全部修改git commit -m “feat:xxx”
提交代码git commit –amend
修改最近一次commitgit restore file
撤销修改git reset –hard HEAD
撤销到最后一次提交
与远程仓库交互
拉取更新
git fetch
获取远程更新但不合并git pull
获取远程更新并合并git pull –rebase
获取远程更新并rebase
推送代码
git push origin dev
推送分支git push -u origin dev
第一次推送并建立跟踪关系git push –force
强制推送
远程分支管理
git branch -r
查看远程分支git push origin –delete branch_name
删除远程分支git fetch -p
清理本地已删除的远程分支
协作开发
合并分支
git merge dev
合并分支gti merge –no-ff dev
保留分支记录git merge –squash dev
合并为一个commit
解决冲突
发生冲突时git会标记<<<<<<< HEAD … ======= … >>>>>>>
修改后git add file && gti commit
变基rebase
git rebase main
把当前分支基于main更新git rebase -i HEAD~3
交互式rebase(压缩、修改commit)
临时保存
git stash
存储未提交的修改git stash pop
恢复修改git stash list
查看存储列表
提交规范与历史管理
查看提交记录
git log
查看提交日志git log –oneline –graph
简洁图形化日志git blame file
查看文件每一行的修改者
撤销/恢复
git revert commit_id
回滚某个提交(生成新提交)git reset –hard commit_id
回退到某个提交(破坏性)git checkout commit_id file
恢复某个文件到历史版本
标签管理
git tag v1.0.0
打标签gti push origin v1.0.0
推送标签git tag -d v1.0.0
删除本地标签git push origin –delete v1.0.0
删除远程标签
团队协作中的高级用法
代码评审
在 GitHub/GitLab 上提交 Pull Request (PR) / Merge Request (MR)
代码合并前需要 Review
子模块
git submodule add < repo >
引入子模块git submodule update –init –recursive
更新子模块
多远程仓库
git remote add upstream < url >
添加上游仓库git fetch upstream
获取上游更新git rebase upstream/main
同步上游改动
钩子
pre-commit
提交前检查代码格式pre-push
推送前运行测试commit-msg
检查 commit message 格式
常见场景总结
拉代码git pull
开新分支开发git checkout -b feature-xxx
开发中提交git add . && git commit -m "feat:xxx"
推送分支git push origin feature-xxx
合并代码提交PR/MR,由leader审核
解决冲突,手动修改后git add && git commit
回退代码git revert
多人协作,每天先git pull --rebase避免冲突
