10个git命令,你会希望早点知道 笔记

10个git命令,你会希望早点知道

本文介绍了一份精选的中级 Git 命令清单,这些命令对于日常开发至关重要,超越了基础的 add、commit、pull 和 push 操作。文章首先对比了 git merge 与 git rebase,解释了 merge 如何保留历史分叉,而 rebase 如何通过重写提交来创建更清晰、线性的历史。作者建议对个人的工作进行 rebase,但因 rebase 具有重写历史的特性,在处理共享历史时需格外谨慎。文章还讨论了 merge 和 rebase 的冲突解决策略,以及中止这些操作的实用性。git commit --amend 命令被介绍为一种将微小的、被遗忘的更改追加到上一个提交中的方法,从而改善提交历史的美观性。文中指出,amend 会创建一个新的提交并改变其哈希值,因此在向远程分支推送时需小心处理。这引出了 git push --force-with-lease,它是推送重写历史时比 --force 更安全的替代方案,可防止意外覆盖他人的工作。随后详细介绍了"Git 之王”git rebase -i(交互式 rebase),突显其将杂乱提交历史转化为清晰、逻辑序列的强大能力。文章解释了 pick、reword、edit、squash、fixup 和 drop 等各种子命令,展示了开发者如何操纵、合并和删除提交以打造优雅的历史。文章承认关于提交历史整洁性的不同观点,但强调了该命令的价值。接下来介绍了 git stash,这是一个在需要切换上下文(例如修复生产环境 bug)时临时保存未提交更改的关键命令。文章涵盖了使用 -u 标志保存未跟踪文件,以及为 stash 命名以提升组织性的重要性。提供了列出、查看、应用和弹出 stash 的命令,概述了管理临时更改的工作流程。最后介绍了 git cherry-pick,这是一个非常实用的命令,可用于选择性地将从一个分支到另一个分支应用特定提交,而无需合并或 rebase 整个分支。这对于从其他开发线中纳入个别修复或功能尤为有帮助。总体而言,本文作为一份实用指南,旨在将 Git 技能提升至基础之上,提供解决常见现实世界开发场景的命令。