我有的:
---A----B-----C-----D--------*-----E-------> (master)
\ /
1----2 (foo)
我需要的:
---A---------------D--------*-----E-------> (master)
\ /
1----2 (foo)
不久前,我做了两个提交,我想从我的 git repo 中删除。我尝试了各种不同的变基“教程”,所有这些都以奇怪的 git 历史结尾,所以我创建了一个示例 repo,结果不是我所期望的。谁能帮我理解我错过了什么?
我有两个分支,master
并且foo
. 我使用要删除的单个文件提交B ,并在我修改此文件的位置提交C。在其他提交中,我再也没有碰过这个文件。
提交 ID:
A: f0e0796
B: 5ccb371
C: a46df1c
D: 8eb025b
E: b763a46
1: f5b0116
2: 175e01f
所以我使用rebase -i f0e0796
和删除B 5ccb371
和C a46df1c
,对吗?如果我正确解释了结果,这就是gitk
我的 repo 显示的内容,尽管git branches
仍然列出了第二个分支。
---A-----1----2---E------> (master)
谁能告诉我这里发生了什么?
编辑: 这是如何从第一张图重新创建回购:
git init foo
cd foo
touch A
git add A
git commit -m "add A"
touch B
git add B
git commit -m "add B"
echo "modify" > B
git add B
git commit -m "modify B"
touch C
git add C
git commit -m "add C"
git checkout -b foo
touch 1
git add 1
git commit -m "add 1"
touch 2
git add 2
git commit -m "add 2"
git switch master
git merge foo --no-ff
touch E
git add E
git commit -m "add E"