为了账号安全,请及时绑定邮箱和手机立即绑定

早知道这些Git命令该多好!手把手教你10个超实用的Git高级操作

标签:
Git

刚开始使用 Git 时,你可能会觉得它很吓人。我们大多数人只停留在基础操作:git addgit commit,和 git push,老实说,这些操作大多数时候都能搞定……直到有一天不管用了。总有一天你会遇到麻烦——一个混乱的历史,一个坏掉的分支,或者一个你完全追查不到的 bug。

这时,这10个Git操作就成了我们的救命稻草。

1. git reflog
曾经犯过如此严重的错误,恨不得时光倒流?git reflog 就是那隐藏的时间机器。

它会跟踪你在仓库中做的每一件事——甚至是你以为丢失的提交。

何时使用:

  • 你误删了一个分支。
  • 你需要在错误的重置后恢复一个提交。

输入:
git reflog

2. git cherry-pick
想象一下,在另一个分支上有一个完美的提交需要,而现在你又不想合并整个分支时,却需要这个提交。这时就可以用 git cherry-pick 命令。

它允许你从一个分支中挑选特定的提交并合并到另一个分支中。

什么时候用:

  • feature-branch 中修复的一个 bug 应用到 main,但不想合并整个分支。

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

3. git bisect
遇到一个突然出现的 bug 时,无需手动逐一排查每个提交,让 Git 来帮你排查。

它能做什么:
在你的提交历史中进行二分查找,找到引入错误的那个确切提交。

什么时候用:

  • 当你遇到一个 bug,但不确定是哪个提交引起的。

命令:(注:)
git bisect start git bisect bad # 标记当前提交为错误 git bisect good <commit-hash> # 标记已知的好提交

注:

Git 会一步步缩小范围,直到找到问题的根源。

4. git stash pop
你可能遇到过这种情况——正在编码中途时,突然接到一个关键的 bug 报告。你需要切换分支,但又不能丢失当前的工作。

它干了什么。

  • 暂存未提交的修改,以后再处理。

为什么用 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 <文件>来查看文件的修改历史。

7. git log --oneline --graph
查看具有多个分支的仓库可能会让人感到不知所措。此命令可以让你从高处概览你的项目。

它能做什么:以简单易懂的格式显示你的提交记录。

什么时候使用:

理解一个分支的历史,或者看看分支是怎么分叉和合并的。

命令行输入:
git log --oneline --graph --all

8. git clean -f
有时候,你的工作目录会变得乱七八糟——到处都是未跟踪的文件。git clean 就像给你的仓库做了一次大扫除一样。

它的功能是:
从您的工作文件夹中删除未被追踪的文件。

适用场景:

  • 你尝试过 git pull,但是由于存在冲突的未跟踪文件,git pull 失败了。

运行:
git clean -f

(强制)清理工作目录中的未跟踪文件

9. git rebase -i
交互式变基是清理杂乱提交历史的利器。

允许你在进行重新整理时合并、编辑或删除提交记录。

用在哪种情况:

在合并前,让提交记录看起来整洁而专业。

命令:
git rebase -i HEAD~<提交次数(数字)>

小技巧:在公共分支上尽量少用这个,以免发生冲突。

10. git diff --staged
看看哪些改动已经被暂存,这样岂不是很方便?这时候用 git diff --staged 正好。

它会做什么:
显示你的暂存区(staging area)和上一次的提交之间的差异。

什么时候用这个:

  • 在提交之前再次确认暂存区的更改。

输入命令:
git diff --staged

哪些命令你觉得比较新?或者你有没有一个被忽视的最爱命令,没有被列出来?来评论区分享一下吧!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消