10 个你希望早点知道的 Git 命令

2025-05-27

10 个你希望早点知道的 Git 命令

刚开始使用 Git 时,你可能会感到畏惧。我们大多数人都会遵循一些基本原则:git addgit commit、 和git push,说实话,这些方法确实有效……直到它失效。总有一天,你会遇到障碍——混乱的历史记录、损坏的分支,或者无法追踪的 bug。

这时,这 10 个 Git 命令就成为救星了。

1. git reflog
您是否曾经犯过严重错误,甚至希望时光倒流?git reflog就是您不知道的时光机。

它的作用:
它跟踪您在存储库中所做的每一件事 - 甚至是您认为已丢失的提交。

何时使用:

  • 您不小心删除了一个分支。
  • 您需要在错误重置后恢复提交。

命令:
git reflog

2. git cherry-pick
想象一下:另一个分支上有一个完美的提交,你现在需要它,而不需要合并整个分支。这时就需要用到 git cherry- git cherry-pickpick 了。

功能:
它允许您从一个分支中选择特定的提交并将其应用到另一个分支。

何时使用:

  • 您希望修复错误feature-branch而不main合并整个分支。

命令:
git cherry-pick <commit-hash>

3. git bisect
正在调试突然出现的 bug?不用手动检查每个提交,Git 会帮你完成侦查工作。

其作用:
通过提交历史执行二进制搜索来找到引入错误的确切提交。

何时使用:

  • 当你遇到一个错误,但你不确定是哪个提交导致了它。

命令:
git bisect start
git bisect bad # Mark the current commit as bad
git bisect good <commit-hash> # Mark a known good commit

Git 将继续缩小提交范围,直到找到罪魁祸首。

4. git stash pop
您一定遇到过这种情况——编码进行到一半时收到一个关键的错误报告。您需要切换分支而不丢失您的工作。

它的作用:

  • 存储未提交的更改,以便您稍后可以返回。

为什么弹出?
git stash保存您的工作,但git stash pop将其恢复并从存储列表中删除,以保持整洁。

命令:
git stash pop

5. git reset --soft
你是否曾经提交过某个提交,然后发现还没准备好?也许你忘了把之前的提交和之前的一起压缩?

作用:
将您的提交移回暂存区,而不会丢失您的更改。

何时使用:

  • 您想重新提交而不丢失进度。

命令:
git reset --soft HEAD~1

6. git blame
是的,这个名字听起来带有指责的意味,但它并不是指责别人(或者也许是)。

作用:
显示文件中每一行的最后修改者。

何时使用:

  • 您正在尝试了解为什么会发生特定的改变。

命令:
git blame <file>

7. git log --oneline --graph
查看包含多个分支的仓库可能会让人不知所措。此命令可让你鸟瞰整个项目。

作用:
以简单、直观的格式显示您的提交历史记录。

何时使用:

  • 了解分支的历史或分支如何分歧和合并。

命令:
git log --oneline --graph --all

8. git clean -f
有时,您的工作目录会变得混乱——未跟踪的文件堆积在各处。git clean这就像是对您的 repo 进行一次春季大扫除。

其作用:
从工作目录中删除未跟踪的文件。

何时使用:

  • 您已尝试 git pull,但由于未跟踪文件冲突而失败。

命令:
git clean -f

9. git rebase -i
交互式变基是清理混乱的提交历史的魔杖。

功能:
允许您在变基期间压缩、编辑或删除提交。

何时使用:

  • 合并之前,让您的提交历史看起来干净且专业。

命令:
git rebase -i HEAD~<number-of-commits>

专业提示:在公共分支上谨慎使用此功能以避免冲突。

10. git diff --staged
提交之前,如果能准确查看暂存区的内容就好了。这时 git diff --staged 就派上用场了。

作用:
显示暂存区和上次提交之间的变化。

何时使用:

  • 提交之前仔细检查阶段性变更。

命令:
git diff --staged

这些命令中哪些对你来说是新命令?或者你有没有被低估的、但你最喜欢的命令却没有出现在列表中?欢迎在评论区留言!

文章来源:https://dev.to/balrajola/10-git-commands-youll-wish-you-knew-earlier-eha
PREV
面向所有人的领域驱动设计
NEXT
尝试 gh,GitHub 的新 CLI