问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Git进阶指南:掌握这10个新命令,轻松解决日常难题

创作时间:
作者:
@小白创作中心

Git进阶指南:掌握这10个新命令,轻松解决日常难题

引用
1
来源
1.
https://www.ypplog.cn/git%E8%BF%9B%E9%98%B6%E6%8C%87%E5%8D%97%EF%BC%9A%E6%8E%8C%E6%8F%A1%E8%BF%9910%E4%B8%AA%E6%96%B0%E5%91%BD%E4%BB%A4%EF%BC%8C%E8%BD%BB%E6%9D%BE%E8%A7%A3%E5%86%B3%E6%97%A5%E5%B8%B8%E9%9A%BE%E9%A2%98/

最新的10个Git命令

引言

作为一名开发者,你一定遇到过使用 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 checkoutgit reset,但容易混乱甚至影响分支状态。git restore 专注于文件恢复,操作简单直观:

# 丢弃工作区的更改
git restore main.js
# 撤销暂存区的更改
git restore --staged main.js

好处:安全撤销文件修改,不影响分支或提交状态。

3. git maintenance – 自动优化仓库健康

当项目变大,执行 git statusgit log 等操作会变慢。Git 2.29 引入 git maintenance,自动维护仓库健康:

# 开启自动维护
git maintenance start
# 立即清理和优化
git maintenance run

优化内容:

  • 垃圾回收:清理无用对象(如删除分支时残留的提交)。
  • 重新打包:合并分散的包文件,提高存储效率。
  • 提交图更新:加速 git loggit 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 --fixupgit rebase --autosquash

# 针对特定提交创建修复提交
git commit --fixup=<commit-hash>
# 在交互式 rebase 中自动合并修复提交
git rebase -i --autosquash <base-branch>

好处:自动整理提交历史,让代码更加干净整洁!

总结

这些 Git 命令可以大大提升你的开发效率,让你在处理大型项目、分支管理、历史回溯时更加得心应手。建议从当前工作流中最需要的命令开始尝试,你会惊讶于效率的提升!

快试试这些宝藏命令,让你的 Git 技巧更上一层楼!💡

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号