Git查看远程分支
Git查看远程分支
引言
团队协作时,远程仓库可能已经开了新分支或删了旧分支,本地缓存的远程引用不会自动更新。先fetch同步远端信息,再用-r参数列出远程分支,避免基于过期列表误操作。
列出所有远程分支
git branch -r
列出remote-tracking分支,origin/前缀代表远端,注意这是本地缓存的远端快照。
先同步再查看
git fetch origin
git branch -r
fetch拉取最新远端引用后再列,才能看到别人刚推上来的新分支。
本地加-r看全部
git branch -a
-a同时列本地分支和远程跟踪分支,方便对比两边差异。
查看远程分支最新提交
git log origin/main --oneline -5
不切分支也能看远程分支最近几条提交历史。
查看远程仓库地址
git remote -v
列出fetch和push两个地址,确认连接的是正确远端。
清理已删除的远程分支缓存
git fetch --prune origin
远端已删的分支,本地列表里还留着,prune清掉过期引用。
按关键词筛选
git branch -r | grep feature
分支多时用grep过滤feature、release等前缀。
注意事项
- git branch -r看的是本地缓存,先fetch再看才准;
- 远程分支不能直接checkout修改,要建本地跟踪分支;
- origin/main是跟踪引用,不是独立可写分支;
- prune清理远端已删分支的本地残留;
- 切远程分支用git checkout -b 本地名 origin/远程名;
- 多远端要指定remote名,默认origin。
总结
git branch -r列出本地缓存的远程跟踪分支,先git fetch同步最新,-a同时看本地远程,log看远程分支提交,remote -v看仓库地址,fetch --prune清理过期引用,grep筛选前缀。核心是列表是缓存快照,操作前先fetch,远程分支只读,改动需建本地跟踪分支再推送。
Git查看本地分支
Git查看本地分支
引言
多人协作久了本地会攒下一堆分支,切分支前先看清当前在哪个分支、有哪些本地分支、哪些已合并。git branch是基础命令,配合不同参数能看本地、远程、合并状态。
列出本地分支
git branch
列出所有本地分支,当前分支前面带*号高亮,一眼定位自己在哪条线上。
看当前所在分支
git branch --show-current
只输出当前分支名,写脚本时取这个最干净,不用从整行结果里截取。
列出远程分支
git branch -r
只列远程跟踪分支;想看本地加远程全部用-a。
查看最后一次提交
git branch -v
每个分支后面跟最近一次提交的短hash和说明,判断分支是否还在推进。
看已合并到当前分支的分支
git branch --merged
git branch --no-merged
merged列出已并入当前线、可安全删除的分支;no-merged是还没并入、删之前要小心的。
查分支对应提交
git branch -vv
额外显示本地分支跟踪的远程分支和 ahead/behind 数量,看本地是否落后远程。
注意事项
- git branch只看本地,远程分支要先fetch刷新;
- 带*的是当前分支,别在错误分支上提交;
- --merged里的分支可放心删,no-merged删前确认有无保留价值;
- 删除已合并分支用git branch -d,未合并强删用-D;
- 分支命名按feature/修复类型规范,方便批量清理;
- 定期删过期本地分支,避免列表臃肿。
总结
git branch列本地并标当前分支,--show-current只取当前名,-r看远程,-v看各分支最新提交,--merged和--no-merged判断可否安全删除,-vv看跟踪关系和领先落后。切分支前先确认当前线,远程信息先fetch,已合并分支用-d安全删,未合并慎删,定期清理过期本地分支保持仓库清爽。
Git查看提交历史
Git查看提交历史
引言
排查线上问题要追溯某行代码是谁、什么时候改的,就靠git log。学会用筛选和格式化参数,能快速定位某次提交,而不是在整屏历史里翻找。
基础查看
git log
默认从新到旧列出提交哈希、作者、时间、说明,按q退出。
一行精简显示
git log --oneline
每个提交压缩成一行短哈希加标题,浏览全貌最常用。
按作者和时间筛选
git log --author="张三"
git log --since="2026-10-01" --until="2026-10-10"
git log --grep="修复登录"
分别按作者、时间段、提交说明关键词过滤。
查看文件改动历史
git log --oneline -- index.php
只看某个文件的提交记录,追溯单个文件演变。
显示每次改动内容
git log -p
git log --stat
-p展开具体diff,--stat只看增删文件和行数概览。
图形化分支历史
git log --oneline --graph --all
用线条画出分支合并拓扑,理清多分支走向。
注意事项
- --oneline配合--graph看分支最直观;
- grep匹配提交说明,搜代码内容用git log -S或git blame;
- 限制数量git log -n 10只看最近10条;
- 已推送的公开历史不要用rebase改写;
- 配合git show 哈希看单次提交详情。
总结
git log是追溯代码的主入口,--oneline精简、--author和--grep筛选、--graph看分支、-p看diff。排查问题时先按作者或关键词缩小范围,再用git show定位单次提交,比整屏翻找高效得多。
Git撤销提交操作
Git撤销提交操作
引言
提交错了、提交了不该上传的文件、commit message写错,都是日常开发常见情况。Git提供多种撤销方式,关键是分清:还没push的本地提交和已经推到远程的提交,处理方式完全不同。
场景一:改错还没add
工作区改动想放弃:
git checkout -- 文件名 #旧写法
git restore 文件名 #新写法
整个工作区全部还原:git restore .
场景二:add了但没commit
把文件撤出暂存区,保留改动:
git reset HEAD 文件名
git restore --staged 文件名
场景三:commit了但没push
改最后一次提交信息:
git commit --amend -m "新的提交说明"
撤销最近一次提交,改动留在工作区:
git reset --soft HEAD^ #撤销提交,代码保留在暂存区
git reset --mixed HEAD^ #默认,撤销提交,代码退回工作区
git reset --hard HEAD^ #撤销提交并丢弃改动,慎用
场景四:已经push到远程
本地reset后强推会改写历史,团队共用分支风险大,推荐用反向提交:
git revert 提交ID
revert会生成一个新提交,把那次改动反向抵消,不改写历史,安全协作。
注意事项
- --hard会丢代码,操作前先备份或开分支;
- 已push到共享分支不要随意reset强推;
- amend只用于未推送的本地提交;
- 查看历史用git log --oneline定位提交ID。
总结
未add用restore,add未commit用reset HEAD撤出,本地commit用reset(soft/mixed保留代码,hard丢弃),已push用revert新增反向提交。记住本地和远程的区别,避免改写团队历史。
Git分支管理实践
Git分支管理实践
引言
多人协作开发如果所有人直接往master主分支提交,代码很容易混乱、出现问题无法回滚。一套清晰的分支命名和合并规则,是团队开发协作的基础。
常见分支模型
- master/main:稳定生产分支,只接受合并,不直接开发;
- develop:日常集成开发分支;
- feature/xxx:单个功能开发分支,从develop拉出;
- hotfix/xxx:线上紧急bug修复分支,从master拉出;
- release/x.x:版本发布前测试分支。
常用命令
# 新建并切换功能分支
git checkout -b feature/login
# 提交代码
git add .
git commit -m "新增登录接口"
# 推送到远程
git push origin feature/login
开发流程
- 从develop拉取新功能分支;
- 本地开发提交,定期同步develop最新代码;
- 测试通过后发起合并请求(MR/PR);
- 代码评审通过合并到develop;
- 上线前拉出release分支测试,最终合并master打tag。
注意事项
- 功能分支命名要语义化,带上开发人或需求编号;
- 每次提交信息写清楚改了什么;
- 不要在长期分支堆积大量提交,频繁同步主干避免冲突;
- hotfix修复完成后要同步回develop,防止下次版本再次出现bug。
总结
Git分支模型不追求复杂,适合团队规模即可。核心原则:主干保持稳定,功能独立分支,小步提交,评审合并,线上问题走hotfix单独修复。
Git 初始化本地仓库案例讲解(完整版)
很多初学者在学习Git时,都会遇到初始化本地仓库相关的问题。网上的资料零散且质量参差不齐,本文尝试用一篇文章把初始化本地仓库讲清楚。