10 个你希望早点知道的 Git 命令
刚开始学习 Git 时,你可能会感到有些畏惧。大多数开发人员会坚持使用git add
、git commit
和git push
,在大多数情况下,这就足够了——直到你遇到一个不知道如何解决的问题。
这时,这 10 个 Git 命令可以节省您的时间和精力。
1.git reflog
恢复丢失的提交
有时,您会意外删除分支或重置为错误的提交。git reflog
让您回到过去并恢复丢失的工作。
作用:跟踪存储库中所做的每个更改,甚至包括那些您认为已经消失的更改。
何时使用:
- 您不小心删除了一个分支。
- 您需要在错误重置后恢复提交。
命令:
git reflog
2.git cherry-pick
应用特定提交
您需要来自另一个分支的提交,但不想合并所有内容。git cherry-pick
仅带来您需要的提交。
功能:允许您将特定的提交从一个分支应用到另一个分支。
何时使用:
- 您需要从不同的分支修复错误,而不需要合并不必要的更改。
命令:
git cherry-pick <commit-hash>
3.git bisect
找到有问题的提交
当出现错误但您不知道是哪个提交引入了该错误时,git bisect
它可以帮助您有效地追踪该错误。
作用:使用二进制搜索来识别导致问题的提交。
何时使用:
- 您需要找到哪个提交引入了错误。
命令:
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 pop
让您在不丢失进度的情况下完成此操作。
作用:保存未提交的更改,以便您稍后应用它们。
为什么pop
不用stash
?它会自动应用已保存的更改并将其从存储列表中删除。
命令:
git stash pop
5. git reset --soft
– 撤消提交而不丢失更改
您提交得太早了,现在需要修改提交。git reset --soft
将提交移回暂存区。
作用:允许您编辑提交而不会丢失更改。
何时使用:
- 您需要在推送之前修改最后一次提交。
命令:
git reset --soft HEAD~1
6. git blame
– 跟踪文件更改
如果您想了解为什么进行某项更改,git blame
请显示文件中每一行的最后修改。
作用:显示文件每一行的提交历史记录。
何时使用:
- 您想知道谁更改了特定的一行代码。
命令:
git blame <file>
7.git log --oneline --graph
更清晰的历史视图
包含多个分支的仓库可能会变得混乱。此命令提供了提交历史记录的简化可视化概览。
作用:以结构化、易于阅读的格式显示提交。
何时使用:
- 您需要了解分支如何分歧和合并。
命令:
git log --oneline --graph --all
8.git clean -f
删除未跟踪的文件
如果您的工作目录中堆满了未跟踪的文件,git clean -f
请帮助清理它。
其作用:从工作目录中删除未跟踪的文件。
何时使用:
- 有未跟踪的文件干扰了您的工作。
命令:
git clean -f
9. git rebase -i
– 编辑您的提交历史记录
当您需要在合并之前清理提交时,git rebase -i
可以让您压缩、编辑或删除提交。
作用:允许您以交互方式修改提交历史记录。
何时使用:
- 合并之前,让你的提交历史看起来结构化且清晰。
命令:
git rebase -i HEAD~<number-of-commits>
注意:避免在公共分支上使用此功能 - 它会重写历史记录并可能导致冲突。
10. git diff --staged
– 审查阶段性变更
在提交之前,您可能需要仔细检查您要推送的内容。git diff --staged
显示了这一点。
作用:显示暂存区和上次提交之间的变化。
何时使用:
- 您想在提交之前验证阶段性变更。
命令:
git diff --staged
希望这有帮助!
你还有什么常用的 Git 命令不在这个列表中吗?欢迎在评论区留言讨论!
文章来源:https://dev.to/balrajola/10-git-commands-youll-wish-you-knew-earlier-2efg