这两条分支能快进吗

is_ff 判断的是:"当前分支的提交是不是已经在目标分支的历史里"。运行下面这段程序: def ancestors(g, c): seen = set() st = [c] while st:

开始练习 →

如果 main 一次都没动过呢

同一张图,但假设 main 还停在分叉点 7b4e2d0 上。运行下面这段程序: def ancestors(g, c): seen = set() st = [c] while st: x = st

开始练习 →

写一个 is_ff

补全 is_ff(g, cur, target):判断从 cur 合并到 target 能不能走快进。 输出 main 合并 feature 能不能快进。

开始练习 →

⚠️ 两种站位各判一次

用同一个 is_ff 判两次:main 停在 a1c5f83(现在这样)、main 停在分叉点 7b4e2d0。 两个结果拼起来输出(现在这样的在前)。

开始练习 →

⚠️ 两种合并各产生几个新提交

把两种情形都跑一遍,输出各自新增了几个提交: 快进合并(main 停在分叉点) 三方合并(main 停在 a1c5f83) 两个数拼起来输出(快进的在前)。

开始练习 →

feature branch 工作流是什么

所谓 feature branch 工作流,是【0】。

开始练习 →

主线该保持什么状态

在这套工作流里,主线分支应当【0】。

开始练习 →

⚠️ 分支活得越久会怎样

一条分支迟迟不合并回去,后果是【0】。

开始练习 →

现在的分叉距离是多少

分叉距离 = 两边各自独有的提交数之和。运行下面这段程序: def ancestors(g, c): seen = set() st = [c] while st: x = st.pop()

开始练习 →

如果晚一点再开分支呢

假设 feature 不是从 7b4e2d0 分出来,而是等主线做完 a1c5f83 之后才分。运行下面这段程序看新的分叉距离: def ancestors(g, c): seen = set() st = [c]

开始练习 →