我有以下问题:
master工作正常master(比如说last)有一个buglast修改那个特定的错误好的.让我们的朋友git bisect去修复修复bug的修改:
git bisect start
git bisect bad last
git bisect good master
Run Code Online (Sandbox Code Playgroud)
但这不会起作用:
一些好的转速不是坏转的祖先.
在这种情况下,git bisect无法正常工作.
也许你错了好转和坏转?
有什么提示可以克服这个问题?我在文档中遗漏了什么吗?
Mic*_*olf 86
从git 2.7开始,您可以使用参数--term-old和--term-new.
例如,您可以识别问题修复提交:
git bisect start --term-new=fixed --term-old=unfixed
git bisect fixed master
git bisect unfixed $some-old-sha1
Run Code Online (Sandbox Code Playgroud)
当你测试,说git bisect fixed或git bisect unfixed适当时.
旧答案,对于2.7之前的git版本
而不是暂时训练自己认为坏意味着好和好意味着坏,为什么不创建一些别名?
在~/.gitconfig添加以下内容:
[alias]
bisect-fixed = bisect bad
bisect-unfixed = bisect good
Run Code Online (Sandbox Code Playgroud)
您可以开始识别问题修复提交:
$ git bisect start
$ git bisect-fixed master
$ git bisect-unfixed $some-old-sha1
Run Code Online (Sandbox Code Playgroud)
当你测试,说git bisect-fixed或git bisect-unfixed适当时.
ing*_*ger 46
我只是"欺骗"git并交换好的<=>坏的意思.
换句话说,将"坏"视为没有出现问题的东西,因此这不是基于补丁的"好"版本.
无论如何,好的和坏的都是相当主观的概念,对吧?:)
git bisect start
git bisect good last
git bisect bad master
Run Code Online (Sandbox Code Playgroud)
Dan*_*mer 20
如果你正在使用git bisect run像我一直在使用Perl的prove命令(运行自动测试),你就没有机会交换good和bad.测试的成功将作为退出代码报告.
我找到了一个有效的Bash语法来否定运行程序的退出代码git bisect run:
git bisect start
git bisect bad HEAD # last revision known to PASS the tests
git bisect good $LAST_FAIL_REVISION # last revision known to FAIL the tests
git bisect run bash -c "! prove"
Run Code Online (Sandbox Code Playgroud)
这给了我第一次通过测试的修订版prove.
Git现在允许您使用old,new而无需先定义它们.您必须在git bisect start没有提交的情况下调用作为进一步的参数,然后通过调用正确地启动二分
git bisect old <rev>
git bisect new <rev>
Run Code Online (Sandbox Code Playgroud)
https://git-scm.com/docs/git-bisect#_alternate_terms
这基本上是@MarcH建议应该实施的内容.
Git的别名是一个好主意,但是术语fixed和unfixed具有比相同的问题good和bad:你不能让他们同时兼容这两种回归和级数.很容易找到以任何一种方式工作的单词:简单地从原始的二进制搜索术语中选择它们,这些术语本质上是中立的,没有对好的或坏的概念.例如:
git config --global alias.bisect-high 'bisect bad'
git config --global alias.bisect-low 'bisect good'
Run Code Online (Sandbox Code Playgroud)
使用这些中性术语,无论您是在寻找回归还是修复,您都可以输入:( git bisect-high或者git bisect-upper,或者git-bisect max......您的选择!).
太糟糕了,git bisect开发人员不能简单地重复使用任何现有术语.一般来说,用户界面不是git的关注点:http://stevebennett.me/2012/02/24/10-things-i-hate-about-git/
| 归档时间: |
|
| 查看次数: |
8320 次 |
| 最近记录: |