Skip to content

Instantly share code, notes, and snippets.

@qiulang
Created January 18, 2019 08:52
Show Gist options
  • Save qiulang/82d2c517f5a503704675fa5fa2507cf2 to your computer and use it in GitHub Desktop.
Save qiulang/82d2c517f5a503704675fa5fa2507cf2 to your computer and use it in GitHub Desktop.
git bisect使用

git bisect

我想查看目前 src/api.js 这段改动是在哪个commit 引入

}).catch(err => {
    reject(err)
})

查看 这个文件的提交历史有几十次,正好是使用 git bisect 合适场景

但是我只想要git bisect看这个文件(不然git要查的commit太多了),可以通过指定目录

git bisect start -- src/api/

当前版本是有问题,所以接着输入 git bisect bad

起点版本是对的,输入 git bisect good 577ff56

有了起点和终点,git 就会通过二分法自动checkout 中间一个commit,然后我们就逐次查看api.js文件每次checkout结果内容对不对,引入这个改动就是 git bisect bad 没引入就是git bisect good 这样执行几次就能很快找到哪个commit引入的,找到后 在 git bisect reset重置 HEAD指针就好了。

整个执行过程如下

qiulangs-MacBook-Pro:cc-frontend qiulang$ git bisect start -- src/api/
qiulangs-MacBook-Pro:cc-frontend qiulang$ git bisect bad
qiulangs-MacBook-Pro:cc-frontend qiulang$ git bisect good 577ff56
/* 以上三条命令也可以合并成一条 git bisect start HEAD 577ff56 -- src/api */
Bisecting: 15 revisions left to test after this (roughly 4 steps)
[9c3f6342e3fce9a9b3fdb81bd0b94c13f26ce80b] '改api.js统一字段header'
qiulangs-MacBook-Pro:cc-frontend qiulang$ git bisect bad
Bisecting: 6 revisions left to test after this (roughly 3 steps)
[fb9e2c44a3e86e4b3117581263a1c33d660faf32] '1.数据总览弹窗交互功能2.数据总览展示项交互功能'
qiulangs-MacBook-Pro:cc-frontend qiulang$ git bisect good
Bisecting: 2 revisions left to test after this (roughly 2 steps)
[1b78c9f6f6bfe58cf13509e47ce43d374a407530] add
qiulangs-MacBook-Pro:cc-frontend qiulang$ git bisect good
Bisecting: 1 revision left to test after this (roughly 1 step)
[3c39e80e302425c1112bbb27391d25149eadf362] add
qiulangs-MacBook-Pro:cc-frontend qiulang$ git bisect good
Bisecting: 0 revisions left to test after this (roughly 0 steps)
[0f741426536de86659ec580cef3636a3a4ee91e9] add
qiulangs-MacBook-Pro:cc-frontend qiulang$ git bisect reset
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment