大多数开发人员每天都会使用 Git,但许多人只是对其功能略知一二。
学习一些 git 命令行技巧可以改变游戏规则,让你更高效、更有成效,对版本控制更有信心。
那么,让我们深入了解每个开发人员工具包中都应该有的 20 个 Git 命令行技巧。
1. 交互式添加
此命令允许您暂存文件的部分内容而不是整个文件。当您只想提交文件中的某些更改而将其余部分留待以后处理时,这非常有用。
如何使用它:
git add -p
提示:
当您在一个文件中处理多个功能但想要单独提交它们时,请使用此功能!
2. 撤消最后一次提交
在最后一次提交中犯了错误?没问题。此命令撤消您的最后一次提交,但将更改保留在您的工作目录中,因此您可以轻松解决问题。
如何使用它:
git reset --soft HEAD~1
提示:
如果您想保留更改,请使用 --soft;如果您想撤消所有内容(包括本地更改),请使用 --hard。
3. 检查分支的上游状态
此命令从远程获取所有更新,并修剪(删除)对已从远程删除的分支的引用。
如何使用它:
git fetch --all --prune
提示:
定期运行它以避免分支列表混乱,尤其是在大型团队中工作时。
4. 快速提交修复
忘记添加文件或在提交信息中输入错误?git commit --amend 可让您更新上次提交,而无需创建新提交。
如何使用:
git commit --amend
提示:
这非常适合消除小错误,而不会用不必要的提交污染您的 Git 日志。
5. 存储您的工作
需要切换分支但又不想丢失当前更改?存储可让您保存工作而不提交,让您稍后返回。
如何使用它:
git stash
提示:
使用 git stash save "description" 添加描述,以便你以后可以快速识别你的存储。
6. 弹出你的存储
当你准备好返回到你的存储工作时,你可以将其“弹出”回你的工作目录。
如何使用它:
git stash pop
提示:
如果您想应用存储而不删除它,请使用 git stash apply。
7. 挑选提交
需要来自另一个分支的特定提交?挑选提交可让您将其应用于当前分支,而无需合并整个分支。
如何使用:
git cherry-pick <commit-hash>
提示:
当您需要反向移植错误修复或小功能时,这尤其有用。
8. 清理本地分支
一旦您完成了某个功能,就不要让旧分支残留。使用这个简单的命令清理它们。
如何使用它:
git branch -d <branch-name>
提示:
如果您需要强制删除尚未合并的分支,请使用 git branch -D <branch-name>。
9. 查看文件历史记录
使用 git log -- <file> 跟踪特定文件的演变。这会向您显示影响该文件的所有提交。
如何使用它:
git log -- <file>
提示:
添加 --stat 以查看有关更改的更多详细信息。
10. 归咎于一行代码
想知道是谁写了一行代码?git blame 可以逐行显示文件中哪些内容被谁修改。
如何使用:
git blame <filename>
提示:
将其与 git log -- <file> 结合使用可获得更详细的更改历史记录。
11. 查找错误来源
这个强大的工具会对您的提交历史记录执行二进制搜索,以查找引入错误的提交。
如何使用它:
git bisect start
git bisect bad
git bisect good <older-commit-hash>
它就像 Git 的侦探模式——非常适合识别错误出现的位置,而无需手动检查每个提交。
提示:
在复杂的项目中使用它,在这些项目中您无法轻松确定何时出现问题。
12. 中止合并
如果您已开始合并但事情没有按计划进行,此命令将中止合并并返回到之前的状态。
如何使用它:
git merge --abort
它可以快速摆脱棘手的情况,让您重新开始。
提示:
在尝试合并之前,请务必确保您的工作目录是干净的。
13. 搜索提交消息
正在寻找特定的提交消息?使用 git log --grep 搜索提交消息。
如何使用它:
git log --grep="search term"
当您记住提交消息中的关键字而不是确切的提交哈希时,您可以更快地找到提交。
提示:
将其与 git log --author 结合使用,以查找特定开发人员的提交。
14. 标记提交
标签可用于标记 Git 历史记录中的特定点,例如发布。
如何使用:
git tag -a v1.0 -m "Version 1.0 release"
它有助于标记重要的里程碑,使以后轻松跳回到特定版本。
提示:
当您不需要其他元数据时,请使用轻量级标签(git tag <tagname>)。
15. 硬重置以清理工作区
需要快速摆脱未跟踪的文件和目录?此命令会将它们清除,只留下受版本控制的文件。
如何使用它:
git clean -fd
它可以清除不需要的杂乱,让您的工作区井井有条。
提示:
请谨慎使用 - 确保您以后不需要这些未跟踪的文件!
16. 查看所有 Git 操作
如果您曾经弄乱过 Git 历史记录,git reflog 就是您的安全网。它显示存储库上所有操作的日志,允许您恢复丢失的更改。
如何使用它:
git reflog
它是您的 Git 历史记录,可让您找到丢失的提交和操作。
提示:
当您认为在错误重置或变基后所有希望都破灭时,请使用它!
17. 压缩提交
想要在推送之前清理您的提交历史记录?压缩提交可让您将多个提交合并为一个,以获得更整洁的历史记录。
如何使用它:
git rebase -i HEAD~<number-of-commits>
压缩可让您的提交历史看起来精致而专业,尤其是在与团队共享时。
提示:
这非常适合在推送之前将多个小修复合并为一个清晰的提交。
18. 撤销提交
是否需要撤消特定提交而不影响您的整个历史记录?git revert 会创建一个新的提交,以撤消指定提交的更改。
如何使用它:
git revert <commit-hash>
与重置不同,它不会重写历史记录 - 它只是反转提交的效果,使其成为以干净的方式撤消错误的完美选择。
19. 查看分支图表
此命令为您提供分支历史记录的视觉概览,使您更容易查看合并、分支和提交。
如何使用它:
git log --graph --oneline --all
它是项目结构的一览视图,对于理解复杂的分支设置特别有用。
20. 自动完成
不要浪费时间输入长命令。启用 Git 自动完成功能,只需按简单的 TAB 键即可完成命令。
如何使用它:开始输入 Git 命令后,只需按 TAB 键即可。
自动完成可加快您的工作流程并有助于防止输入错误。
提示:
确保在终端中设置了 Git 自动完成功能,以大幅提高工作效率!
这些技巧不仅仅是开发环境中保持高效和井然有序的必备工具。无论您是独自编码还是在团队中工作,了解这些技巧都可以大大提高您的工作效率,让您在同事面前看起来像一个 Git 大师。