【发布时间】:2015-01-20 23:06:41
【问题描述】:
假设我做了以下提交。 所有提交都在同一个分支中。在 Commit 3 中,我删除了 C,现在我需要将 C 添加回当前
Commit 1: A,
Commit 2: A, C
Commit 3: A,
.
.
.
Master (current) : A, B, D
现在,我想用 A、B、C 和 D 创建一个分支。 这是我尝试过的。
-
在提交 2 处创建本地和远程分支
git checkout branch mybranch hashtag-of-commit2
-
从 origin/master(当前)拉取更改以添加 B 和 D
git checkout mybranch
git 获取来源
git 合并源/master
这样做,它删除C并添加B和D。最终结果是A,B,D。我想要的是A,B,C和D。我该怎么做?
【问题讨论】:
-
也许只是你的符号不合常规,但你是想说提交 1、2 和 3 都包含更改 A?为什么要创建一个有 4 个更改的分支完全涉及远程仓库?
-
请注意,您不会“从 master 拉取更改”。您从远程提取更改(例如
origin)。可以说你从原点获取它们,并将它们合并到主控中。清理术语真的会帮助我们帮助您。 -
感谢您的 cmets。我想做的是创建一个带有更改 A、B、C 和 D 的分支。
-
我很感激,但我不太确定你现在有什么。 (例如)提交 1、2 和 3 是否在同一个分支中?还是不同的分支?当您说“更改”时,您的意思是“更改集”吗?如果是这样,在提交 2 之后变更集 C 如何消失?尝试创建一个类似于
git rebase上的文档的图表。 -
所有提交都在同一个分支(master)中。在提交 3 时,我删除了 C。现在我需要重新添加 C,