返回

1. git stash,救星

前端

你所不知道的一些 git 相关的小技能

前言

为什么要写这篇文章呢?其实发现很多同学对一些很简单又有效的 git 手段都不太了解,下面结合使用场景介绍几个性价比极高的 git 指令。

使用场景:

工作过程中,修改了一部分代码,但发现环境不对,需要先切换分支处理一些紧急问题,这个时候不能直接切换分支,因为当前修改尚未提交。

操作:

git stash

该指令会将当前工作区所有未暂存的修改全部保存起来,切换分支后,再通过:

git stash pop

即可恢复之前的修改。

使用场景:

代码出现问题,但不知道是哪次提交引入的,需要逐个版本回退定位。

操作:

git bisect start HEAD <出现问题的版本>
git bisect run <检查代码是否出现问题的脚本>

然后根据脚本运行结果执行:

git bisect good
git bisect bad

不断缩小问题引入的版本范围,直至找到问题版本。

使用场景:

提交历史记录出现问题,需要对提交记录进行修改或合并。

操作:

git rebase -i HEAD~n

其中 n 为需要修改的提交记录个数,然后进入交互式界面,可以对提交记录进行修改、合并、删除等操作。

使用场景:

需要将某个特定提交从一个分支移植到另一个分支。

操作:

git cherry-pick <提交哈希值>

即可将指定提交移植到当前分支。

使用场景:

需要对比两个版本之间的差异,但希望以可视化方式展示。

操作:

git difftool <版本1> <版本2>

会使用系统默认的可视化对比工具打开两个版本之间的差异。

总结

以上介绍的几个 git 小技能,虽然不起眼,但在实际工作中却能极大地提高效率,希望大家能够熟练掌握,提升自己的 git 使用水平。