网站首页 > 精选文章 正文
引言
作为一名开发者,你一定遇到过使用 Git 的种种烦恼:随着项目体积变大,操作变得越来越慢;切换分支时不小心覆盖了修改;面对庞大的 monorepo 项目难以下手。
幸好,Git 也在不断升级与进化,带来新功能,让我们的开发体验更加顺畅。本文为你总结了 10个实用但容易被忽略的 Git 命令,帮你更高效地管理代码和项目!
Git 的基础操作请参考:程序员必备!15个超实用的Git命令,助你高效管理代码
1. git switch - 更安全的分支切换
在 Git 2.23 之前,git checkout 是切换分支的万能命令,但它还涉及其他操作,容易误触。
git switch 专注于分支切换,操作更安全、更清晰:
# 切换到其他分支
git switch feature-branch
# 创建并切换到新分支
git switch -c new-branch
好处: 减少误操作的风险,不再担心覆盖当前文件!
2. git restore - 安全地撤销文件更改
以往撤销更改,通常用 git checkout 或 git reset,但容易混乱甚至影响分支状态。git restore 专注于文件恢复,操作简单直观:
# 丢弃工作区的更改
git restore main.js
# 撤销暂存区的更改
git restore --staged main.js
好处: 安全撤销文件修改,不影响分支或提交状态。
3. git maintenance - 自动优化仓库健康
当项目变大,执行 git status、git log 等操作会变慢。Git 2.29 引入 git maintenance,自动维护仓库健康:
# 开启自动维护
git maintenance start
# 立即清理和优化
git maintenance run
优化内容:
o 垃圾回收:清理无用对象(如删除分支时残留的提交)。
o 重新打包:合并分散的包文件,提高存储效率。
o 提交图更新:加速 git log 和 git blame 等操作。
4. git sparse-checkout - 高效管理大仓库
在大规模 monorepo 中,克隆整个仓库很费时,但你可能只需要某几个目录。Git 2.25 推出了 git sparse-checkout:
# 启用稀疏检出模式
git sparse-checkout init
# 仅拉取特定目录
git sparse-checkout set services/ docs/
好处: 拉取所需的目录,节省时间和磁盘空间。
5. git log --remerge-diff - 轻松理解合并提交
合并提交通常只显示哪些分支合并了,但无法直观看到具体改动。Git 2.35 引入了 --remerge-diff 参数:
git log --remerge-diff
用途: 回放合并策略,清晰展示合并带来的改动,方便调试和审查复杂的合并历史。
6. git blame --ignore-rev - 忽略格式化提交
团队进行批量格式化时,git blame 可能失去意义,因为每一行都指向格式化的提交。
# 忽略指定提交
git blame --ignore-rev <commit-hash>
还可以设置一个文件保存所有需要忽略的提交:
# 添加到忽略文件
echo <commit-hash> >> .git-blame-ignore-revs
# 配置 Git 使用该文件
git config blame.ignoreRevsFile .git-blame-ignore-revs
好处: 保留真正的代码作者信息。
7. git range-diff - 比较提交历史变化
当你进行 rebase 或修改历史后,如何查看新旧提交的具体差异?git range-diff 让你一目了然:
git range-diff
用途: 清楚了解历史如何演变,特别适合特性分支的开发和修复。
8. git worktree - 同时处理多个分支
频繁切换分支会中断工作流。git worktree 让你在同一仓库中创建多个工作目录:
# 为特定分支创建一个新目录
git worktree add ../feature-branch feature-branch
# 删除工作目录
git worktree remove ../feature-branch
好处: 同时在多个分支上工作,互不影响,效率倍增!
9. git rebase --update-refs - 自动更新引用
Rebase 后,旧提交会被替换,但分支引用可能未更新。Git 2.38 的 --update-refs 参数解决了这个问题:
git rebase --update-refs
用途: 自动同步相关分支和标签,避免手动更新的麻烦。
10. git commit --fixup 和 git rebase --autosquash - 轻松修复提交
发现某个提交需要修复?不用手动编辑历史!使用 git commit --fixup 和 git rebase --autosquash:
# 针对特定提交创建修复提交
git commit --fixup=<commit-hash>
# 在交互式 rebase 中自动合并修复提交
git rebase -i --autosquash <base-branch>
好处: 自动整理提交历史,让代码更加干净整洁!
总结
这些 Git 命令可以大大提升你的开发效率,让你在处理大型项目、分支管理、历史回溯时更加得心应手。建议从当前工作流中最需要的命令开始尝试,你会惊讶于效率的提升!
快试试这些宝藏命令,让你的 Git 技巧更上一层楼!
猜你喜欢
- 2025-01-27 uv:您一直在等待的 Python 包管理器
- 2025-01-27 Git 放弃本地修改,强制拉取更新(git抛弃修改)
- 2025-01-27 免费获取韵达快递查询API的使用指南
- 2025-01-27 vue-antd后台管理系统(ant design vue pro 后端服务)
- 2025-01-27 在 Git 中撤销更改的 6 种方法!(git撤销提交命令)
- 2025-01-27 我在用的 Jetbrains 神仙插件合集
- 2025-01-27 如何有效保护你的Python源代码不被暴露?
- 2025-01-27 Vue框架学习记录3(vue框架实战)
- 2025-01-27 在游戏中学习git操作(二)(github游戏)
- 2025-01-27 Shell脚本:常用100个shell命令使用讲解题
- 05-3022《Vue 入门教程》VueRouter 路由嵌套
- 05-30前端面试题-Vue 项目中,你做过哪些性能优化?
- 05-30超简 Vue3+elementPlus 后台管理系统
- 05-30还有前端不知道Electron的?手把手教你把Vue项目打包成桌面程序
- 05-30Nuxt最简入门,让vue项目快速被搜索引擎收录
- 05-30Mac上最美最好用软件系列
- 05-30AI编程小白必备|Cursor安装及配置教程
- 05-30好玩儿的编程语言——文言文编程语言
- 最近发表
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)