在解决冲突时,我如何知道我在git rebase中走了多远?

ycl3bljg  于 2023-08-01  发布在  Git
关注(0)|答案(5)|浏览(142)

我在git中进行rebase,遇到了很多冲突。我处理每个问题并执行git rebase --continue,但却遇到了下一个冲突。如何查看我离成功完成变基还有多远?

deikduxw

deikduxw1#

我不确定你是否能得到一个衡量你必须走多远的标准,但它列出了你有多少次提交到变基中。在错误输出中有一行代码,如下所示

Patch failed at 0003 <commit message>

字符串
0003意味着你在变基中提交了三次。

k4ymrczo

k4ymrczo2#

你可以在这里看到一个补丁列表:

.git/rebase-apply/[0-9]*

字符串

anhgbhbe

anhgbhbe3#

如果你的问题是看有多少冲突已经解决,我有我通常做一个快速

$ git diff

字符串
同时进行变基。冲突的部分将不会暂存(假设您使用的是git mergetool)。
或者,您也可以直接grep冲突标记。
如果你想知道有多少提交已经被应用,只需要使用

$ git log REBASE_BASE..


其中REBASE_BASE是你要重基的提交。

arknldoa

arknldoa4#

文本文件.git/sequencer/todo会显示下一个要重定基或挑选的提交。
此外,在Windows中,Git Bash shell在提示符中以以下格式显示rebase进度状态:
第一个月
在Powershell中,我可以通过以下命令访问Git Bash:
sh --login

s4n0splo

s4n0splo5#

我在这里找到了.git/rebase-merge/done.git/rebase-merge/git-rebase-todo,在git版本2.41.0上。
我不确定这些是实现细节还是git公共接口的一部分,但如果你有,你可以尝试计算这些文件中的行数,以了解rebase沿着进度。例如,如果你有wc

$ wc -l .git/rebase-merge/{done,git-rebase-todo}
   95 .git/rebase-merge/done
  251 .git/rebase-merge/git-rebase-todo
  346 total

字符串
这些可能包括不仅仅是提交选择的操作,但这些也可以说是进展的一部分。一些空行增加了一点失真。在计数之前,可以使用grep对其进行过滤。

相关问题