我在 git 中有以下历史记录:
* 02e085a (master) readme update
| * 1d940da (HEAD -> b1) search.py
| | * 7aaa12d (b2) file2
| |/
| * 7be9db9 file1
|/
* 22601c0 initial commit
现在我在 b2 上,我想明白 b2 分支的地方(7be9db9)。算法如下:
- 获得下一次提交
- 检查提交所属的分支
- 如果只有当前分支,则继续 1. step else 4.step
- 提交属于多个分支,这一定是我们分支的点
但是,如果我想对 b1 做同样的事情,我最终会在同一个位置 - 7be9db9。但我预计最终会在 22601c0,因为这是 b1 分支的点。历史就是这样创造的。
来自 master (b1) 的初始提交分支和提交来自 b1 (b2) 的 file1 分支和提交 file2 checkout b1 并提交 search.py
恐怕git的设计方式,无法区分,commit 7be9db9(file1)是b1还是b2创建的,对吗?所以不能说b1的父母是master还是b2?
感谢您的确认。