【发布时间】:2019-07-29 17:34:48
【问题描述】:
假设我有一个 master 分支,其中有一些提交我想保留以供以后的文档和参考,但将它们从 master 中删除(因为我希望 master 处于与上游 repo 相同的状态)。
我现在的方法是,
- 从当前主状态创建一个新分支
- 将 master 重置(--hard)到上游 repo 中也存在的状态
现在,我的问题是:
- 从 master 中删除引用提交时,新分支会发生什么情况?
- 或者我对如何引用分支的理解完全错误。
通常分支以以下方式显示,其中(据我了解)D 是新分支的基础。
A - B - C - D (master)
\
(new branch)
分支是自动“重新定位”还是你怎么称呼它? 会是这个样子吗?
A - B (master)
\
C - D (new branch)
最后也是最普遍的问题:
- 我在新分支和
reset --hardmaster 分支中保持状态的方法是实现我的目标的正确方法,即无需我的提交 (@987654326 @ 和D) 合并了吗?
【问题讨论】:
-
提交是不可变的。您通常会在 rebase 后看到
A-B-C-D更改为A-B-C'-D',以反映尽管提交C和C'在源代码树中引入了相同的更改,但它们是不同的提交。