git - git merge-base --fork-point什么也没产生
问题描述
我在功能分支上运行它:
git fetch origin
git merge-base --fork-point origin/dev; echo $?
该git merge-base
命令以 1 退出,但标准输出/标准错误记录为零。
我无法弄清楚为什么该merge-base
命令不会产生参考,有人知道为什么会发生这种情况吗?
解决方案
torek提到的警告是git merge-base
fork-point mode 讨论的一部分。
o---B2 / ---o---o---B1--o---o---o---B (origin/master) \ \ B0 D0'--D1'--D' (topic - updated) \ D0---D1---D (topic - old)
需要注意的是,存储库中较旧的 reflog 条目可能会过期
git gc
。
如果B0
不再出现在 remote-tracking 分支的 reflog 中origin/master
,则--fork-point
mode 显然找不到它而失败,避免给出随机无用的结果(如 B0 的 parent,就像没有--fork-point
选项给出的相同命令一样)。此外,您使用该
--fork-point
模式的远程跟踪分支必须是您的主题从其 tip 分支的分支。
如果您从比提示更早的提交中分叉,则此模式将找不到分叉点(想象在上面的示例历史记录B0
中不存在,origin/master
开始于,B1
移动到B2
然后B
,然后您topic
在origin/master^
何时分叉; history 将与上面相同,没有,并且父级是正确找到的,但模式不会,因为它不是曾经位于) 尖端的提交之一。origin/master
B1
B0
B1
git merge-base origin/master topic
--fork-point
origin/master
您可以看到在此线程git merge-base --fork-point
中不起作用的其他场景。这个补丁系列说明了当前的文档。
推荐阅读
- jquery - 如何在不更新所有页面的情况下添加新的summernote 工具栏?
- kendo-ui - 带有复选框和键盘导航的 Kendo 下拉列表
- angular - Angular 在布尔函数中使用 Promise
- angular - cellClick 事件未触发 Angular 4 Kendo UI
- selenium - Utils - 错误 - Selenium 中的错误 java.lang.NullPointerException
- html - Tomcat欢迎页面上的主机名
- css - CSS网格,具有更复杂布局的自动高度
- ios - 将 Swift 函数转换为 Objective C 并在 swift 中使用返回值
- salesforce - Salesforce 中电子邮件的传递状态
- python - 根据总 str 长度选择字符串的中间部分到新列 pandas