问题标签 [git-bisect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1337 浏览

git - git bisect 后恢复

我正在做一个计算器项目。在那,我必须使用git bisect找到错误的提交,并使用git revert删除该提交。结果必须被暂存、提交并推送到远程仓库。

使用 git bisect,我发现了错误的提交。

然后输入,git bisect reset

后来我用了 git revert commitSHA

显示一些消息以解决冲突。访问了文件(newfile.py),并删除了导致该文件的语句。然后用git add 上演它。 然后, git commit 并使用提到的恢复消息。

用过,git push

在我做了所有这些事情之后,它仍然显示它不完整。

由于我是初学者,我想知道我是否错过了介于两者之间的东西,或者这不是方法。帮帮我!

0 投票
1 回答
57 浏览

git - 如何在远程存储库上使用 git bisect?

我正在创建一个 Python 模块,允许用户在用户指定的存储库上运行 git bisect,但我不太清楚如何使 git bisect 为远程存储库工作,该存储库不在调用该函数的机器上. 我不想每次都使用 git clone ,因为这会违反直觉并且会占用大量磁盘空间。有没有办法在远程仓库上使用 git bisect?

0 投票
0 回答
270 浏览

git - 让 Git Bisect 进行强制签出或以其他方式覆盖本地更改

我正在对 Unity3D 存储库进行 git 平分,每次打开 Unity3D 编辑器以检查当前版本的好坏时,Unity3D 都会弄脏一些文件,迫使我在继续平分之前进行硬重置。

这是因为如果我不重置,我会得到:

有没有办法告诉 git bisect--force在其结帐调用中使用或避免每次都必须重置?

0 投票
0 回答
87 浏览

django - 平分的 Git 提交

我只使用git add .过这个项目,但是在某个地方,我开始在我的一个子目录(称为用户)上收到奇怪的“修改过的内容,未跟踪的内容”错误。其他stackoverflow答案对我不起作用。我使用 checkout 来回顾以前的提交,但是 buggy/untracked 子目录并没有随着目录的其余部分而改变。我最终对其进行了手动更改,然后运行git checkout master以确保其他所有内容都回到了它开始的位置。

Git 说我在对分,它不会让我提交。我查看了 stackoverflow 的答案,并尝试了以下一些命令:

git pull

git pull origin master

git branch --set-upstream-to=origin/master master

git pull --rebase

抱歉,如果这些命令到处都是。我打算很快真正了解 git 的工作原理,但现在我只想提交更改以便部署我的项目。

更新:我使用git bisect reset,从我分离的头中创建了一个新分支,然后与主人合并。这保留了我所做的更改,所以现在我只需要弄清楚如何在我的提交中再次跟踪用户。git add users仍然没有做任何事情。

0 投票
1 回答
150 浏览

git - git bisect 如何选择一个没有第一个好的提交作为祖先的提交?(使用--first-parent)

我有一个使用“主干”流的存储库,其中功能分支合并并创建合并提交,并且正在使用 bisect 尝试查找何时引入问题。问题识别过程涉及与已知良好提交的结果进行比较,因此我使用git bisect --first-parent(2.29 中的新功能)跳过不在“主干”分支中的提交(识别导致问题的合并提交对我来说就足够了)。

但是,git bisect --first-parent正在选择没有我作为祖先的第一个好的提交的提交,我不确定这是怎么可能的。

在下面的示例中,提交2是好4是坏。

如果没有--first-parent,我希望功能分支提交a包含在二等分中,但是如果使用--first-parent,我希望它跳过该提交,并且只测试合并提交,3.

我已经在一个迷你存储库上对此进行了测试,它的行为符合我的预期,但是我更大、更复杂的存储库并没有跳过没有first-good作为祖先的提交,我很难理解为什么.

我的命令是

0 投票
1 回答
53 浏览

git - git bisect 并找到最后一个好的提交 - 我错过了什么吗?

我的问题涉及 git bisect 何时发现第一个错误提交

现在,理想情况下,我想继续并确定LAST GOOD COMMIT

我的问题是:

(注意:我如何手动找到最后一个好的提交的步骤,请遵循。这并不难,只是乏味)。

git 完全知道2060c40f6c3d3c057f9fdab31643599da375296b前面有8993de6cc8bac3d5867e6b84fe30c52c9e604737(见下文)。有没有办法在 git/git bisect识别第一个错误提交时快速获取该信息,而无需手动搜索提交历史记录?

我想看的

我如何找到最后一个好的提交的详细信息:

git checkout <mybranch-before-git-bisect>然后

git log

我一直回到顶部,现在可以查找第一个错误提交

/2060c40f6c3d3c057f9fdab31643599da375296b

这让我

什么不起作用(但感觉应该)

  • git log在 bisect 发现第一个错误提交没用之后

即如果我git log在 git bisect 找到第一个错误提交后,我会在 1️⃣ 2️⃣ 3️⃣ 处及时获得 3 个条目。许多提交丢失了,所以这是没用的。

我在 git 版本 2.23.0

0 投票
1 回答
152 浏览

bash - 带有 bash 功能的“git bisect run”

是否有一种方便的方法来编写要运行的 bash 脚本git bisect run,其中使用的 bisect 命令本身就是一个 bash 函数?如果我的函数名为step,则似乎git bisect run step两者git bisect run bash -c step都无法看到该函数。

我的脚本目前看起来像

这使用了在传递给的命令中制作脚本源本身的粗俗技巧,git bisect run这意味着我必须在尝试执行git bisect命令之前检查脚本当前是否正在被获取。

我想我可以将 bash 函数拆分为一个单独的脚本,但是有更好的方法可以在一个文件中完成这一切吗?

0 投票
2 回答
243 浏览

git - 如何找到跨文件重命名和重新排序添加特定 Gradle 构建依赖项的 Git 提交?

我正在使用Spring Boot和 Java实现一个多项目Gradle项目,并使用Git进行版本控制。其中一个子项目依赖于特定的库(我们称之为),在该特定子项目的文件中声明。这个库是不久前添加的,我想找到添加它的提交,以便我可以了解添加它的原因以及是否仍然需要它。我的代码中没有库的导入,但是由于 Spring Boot 的自动配置部分基于类路径上的库,因此在我的代码中没有直接使用不足以确定是否使用或如何使用该库.com.example:mylibbuild.gradle

为了给这种情况增加一个皱纹,自项目启动以来发生了各种项目重组:子项目已多次重命名,移至子项目等。构建文件本身也进行了重组和重新排序。此外,Gradle 文件已从Groovy ( build.gradle) 切换到Kotlin ( build.gradle.kts),然后又切换回来。

构建.gradle

构建.gradle.kts

我知道一些手动方法可以追溯并找到更改。例如,我可以使用git blame并重新完成对线路的更改,在重命名和重组发生时手动切换文件。但是当发生大量更改时,这些方法可能会有点耗时且乏味。

如何快速轻松地找到添加库的提交?

0 投票
1 回答
62 浏览

git - 为什么 git bisect 为我提供了一个相当古老的提交?

我正在尝试使用git bisect. 我的好承诺是

我的错误承诺是

所以我认为当 git bisect 启动时,它会在 2021 年 6 月 22 日到 2021 年 9 月 27 日之间给我一个提交。

然而,它给了我一个相当老的

我认为这可能是因为一些合并问题,但为什么,以及如何解决这个问题?

0 投票
0 回答
25 浏览

git - 为什么 git bisect 建议相当奇怪的提交?

我想使用 git bisect 来修复一些错误。

它建议我检查 commit e868450a9f982b25790262c9e86ff1e27ab8dc2e,我会称之为 mid 。

当我开始检查这些提交的提交日期时,这很奇怪

我认为提交日期e868450a9f982b25790262c9e86ff1e27ab8dc2e应该在 之间[good,bad],即使我们考虑到潜在的樱桃选择/变基,因为每个操作都会改变提交日期。所以这里很奇怪。

同时,我还检查了好和坏是否有共同的合并基础,结果是肯定的。我想这意味着有一条链good -> ... -> bad,所以我可以在这条链上平分

但是,我们检查了坏/中和中/好的合并基础,事情变得陌生。它显示了 good 和 mid 的合并基础既不是 good 也不是 mid,但是为什么会发生这种情况呢?