繁体   English   中英

我可以在存储库的一部分上使用git bisect吗?

[英]Can I use git bisect on a portion of my repository?

我有一个单一的存储库,其中包含几个子项目,而没有子树或子模块。 我现在有一个新功能的错误,需要在Project C中进行修复。C取决于项目A和B。

为了使该功能正常工作,我需要最新版本的ProjectA。

在项目B的某个地方,引入了该错误。 所以我的问题是:

我可以运行git bisect并告诉它仅在Project B的源代码树上运行,同时保持A和C为最新版本吗?

不,git bisect不支持该功能。 您永远不应将不同的项目放到同一存储库中。 Git不喜欢或不支持。 尽管如此,您仍然可以执行以下操作:

git bisect在这里基本上有两种模式:普通模式和--no-checkout模式。 您可以使用两种方法中的任意一种来实现您的目标:

  1. 正常:运行git bisect ,然后在测试之前的每一步中,使用git checkout master -- sub/project/folder将正确版本的子项目放入工作树中。 您可能必须撤消测试之后才能将二等分连接的想法。
  2. --no-checkout :运行git bisect start --no-checkout 现在,除了设置BISECT_HEAD引用之外,这些步骤对您的存储库也没有任何影响。 使用此引用仅git checkout BISECT_HEAD path/to/projectBgit checkout BISECT_HEAD path/to/projectB 现在进行测试。

我建议使用--no-checkout方法。 并且请注意,尽管3lectrologos的提示不起作用,它仍然很有帮助。 将ProjectB的路径指定为git bisect将允许利用这样的事实,即错误只能在包含对ProjectB所做更改的修订版中引入。

我认为git bisect start -- path/to/projectB应该可以解决问题。

注意 :正如下面的注释中指出的那样,这不会使存储库的其余部分保持其最新状态,而是将一分为二,仅考虑对指定路径进行了更改的提交。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM