git指针

📅 2026/7/19 14:26:14
git指针
文章目录一、三种 git 指针1.本地分支指针2.HEAD 指针3.远端追踪指针origin/xxx二、git diff1.git diff HEAD2.git diff HEAD~3.git diff HEAD origin/xxx\_dev三、两种使用场景场景 1普通开源 Git 仓库无 Gerrit 评审场景 2 Gerrit 工作流一、三种 git 指针1.本地分支指针每个本地分支名就是一个指针存放对应 commit 的哈希永久存在手动切换/创建。如xxx_dev、xxx_release2.HEAD 指针HEAD当前工作指针标记本地仓库的最新commitHEAD~本地上一笔commitHEAD~2倒数第二个commit3.远端追踪指针origin/xxxorigin/xxx_dev远端仓库 enrigin_dev 分支在本地的镜像指针记录上次拉取时远端最新提交执行git fetch / pull后自动更新本地缓存远端分支状态不是远程实时指针。二、git diff1.git diff HEAD对比「所有本地修改不管 add 没 add」和本地最新提交 HEAD适合一次性查看全部未提交代码2.git diff HEAD~等价git diff HEAD~ HEAD查看上一次提交 和 当前 HEAD的差异也就是你本次 commit 改了什么3.git diff HEAD origin/xxx_dev看当前本地提交与远端差距三、两种使用场景场景 1普通开源 Git 仓库无 Gerrit 评审1.手动改文件 →工作区2.git add .→ 改动拷贝到暂存区3.git commit→ 暂存打包成提交存入本地仓库HEAD 前移4.git push→ 把本地新提交同步到远程对应分支此时远程分支立刻更新代码直接生效不需要 merge。只有多人分支并行开发时拉代码出现分叉才需要 merge/rebase 整合提交历史。场景 2 Gerrit 工作流1.改代码 → 工作区2.git add → 暂存区3.git commit /git commit --amend → 存入本地仓库HEAD 更新4.git push origin HEAD:refs/for/enrigin_dev提交送到 Gerrit 评审服务器进入待审核列表远端正式分支 origin/enrigin_dev 不会变别人拉代码看不到你的改动。5.评审通过、管理员点 Submit合并Gerrit 才会把这条提交合并到正式远程enrigin_dev分支6.其他人执行git pull --rebase拉取这条已合入远端的代码到本地。