git指针
2026/7/19 14:26:11 网站建设 项目流程

文章目录

  • 一、三种 git 指针
    • 1.本地分支指针
    • 2.HEAD 指针
    • 3.远端追踪指针(origin/xxx)
  • 二、git diff
    • 1.git diff HEAD
    • 2.git diff HEAD~
    • 3.git diff HEAD origin/xxx\_dev
  • 三、两种使用场景
    • 场景 1:普通开源 Git 仓库(无 Gerrit 评审)
    • 场景 2: Gerrit 工作流

一、三种 git 指针

1.本地分支指针

每个本地分支名就是一个指针,存放对应 commit 的哈希,永久存在,手动切换/创建。
如:xxx_dev、xxx_release


2.HEAD 指针

HEAD:当前工作指针,标记本地仓库的最新commit
HEAD~:本地上一笔commit
HEAD~2:倒数第二个commit


3.远端追踪指针(origin/xxx)

origin/xxx_dev
远端仓库 enrigin_dev 分支在本地的镜像指针,记录上次拉取时远端最新提交

执行git fetch / pull后自动更新,本地缓存远端分支状态,不是远程实时指针。



二、git diff

1.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,拉取这条已合入远端的代码到本地。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询