我的部门有以下情况:
正如您所看到的,另一个分支(绿色)是在不久前从我们的主分支(红色)创建的,一些提交被添加到其中,然后它被合并回我们的主分支,同时没有收到任何提交。从那时起,更多的提交被添加到红色分支中,所以我们的头实际上向左一点。
我将如何将这个分支重新定位到它自己(第一个提交一直到右边)以压缩它的提交历史,包括从绿色分支到红色分支的所有提交(所以实际上我只在左边的单个分支上)?
EDIT I通过将头软地重置回e,压缩以前的所有内容,然后将分支重新设置为a,将b、c和d提交到a,然后应用我存储的内容来解决这个问题。快又快又像魅力一样工作!
谢谢你的帮忙!
发布于 2014-12-08 01:26:27
签出一个基于提交d
的新分支
git checkout -b RB d
main
|
V
a----------------e----f
\ /
b------c-----d
^
|
RB
重新建立main
分支的基础
git rebase main
main
|
V
a----------------e----f
\ /
b------c-----d----e'-----f'
^
|
RB
切换回您的主分支,并将其重置为重新建立的分支。
git checkout main
git reset --hard RB
main
|
|
a----------------e----f |
\ / V
b------c-----d----e'-----f'
^
|
RB
有一天,git gc会清理提交、e
和f
,因为它们不再被引用。
所以你的存储库总有一天会看起来像这样
main
|
V
a---b----c----d----e'-----f'
^
|
RB
只要git没有删除e
和f
,就可以通过使用提交id来恢复它们。
git checkout -b restored_main f
发布于 2014-12-08 01:24:11
尝试使用命令进行交互式重基:
git重碱-i头~6
这将弹出一个最后6次提交的记事本.您不需要更改它,只需保存和关闭。在重基完成后,您的提交历史记录应该很好。
https://stackoverflow.com/questions/27354301
复制