我是git的新手,因此如果这是一个简单的解决方案,我深表歉意。
我需要将回购的整个master分支重新设置为feature分支。创建了仓库,然后有人将master用作第一个功能分支。因此,我现在拥有的是:
ParentPart.Id
我想做的是
A -- B -- C -- D (branch: master)
其中Z表示仅包含.gitignore文件的提交(或其他“回购初始化提交” ... ...我什至会接受不包含文件的空白提交,但我不认为git喜欢/不允许)。
我了解如何在分支内对 中的提交进行重新计算,所以我了解如何执行此操作:
A--B--C--D (branch: new-feature)
/
Z (branch: master)
但是我还无法弄清楚如何将所有master都基于一个功能分支。我相信我一直面临的问题的症结在于,由于没有Z提交,所以我没有提交指向主控器的任何提交(提交A具有部分功能实现,因此我不能使用A代替Z)
提前谢谢!
答案 0 :(得分:3)
为什么要打基础?只需在新功能提示上合并新的管理员基础即可。结帐master
(以提供一个不错的起点)
git checkout -B feature
git branch -f master $(git commit-tree -m 'Initial commit.' `:|git mktree`)
git merge -s ours --allow-unrelated-histories master
生产
A ... D---E feature
/
Z master
现在历史准确反映了发生的事情,一切正常。
如果您确实想进行变基,请as the doc points out there's a --root
option:
git checkout -B feature
git branch -f master $(git commit-tree -m 'Initial commit.' `:|git mktree`)
git rebase --root --onto master
如果旧的master
(新的feature
)中的任何分支都存在,将引起心痛。