【发布时间】:2021-12-06 22:15:54
【问题描述】:
我在现有存储库上使用了git subtree 命令,以便将子文件夹提取到它自己的存储库中。然后,我将提取的提交推送到它的新存储库,即master-branch。
但是,我应该一直把它推到"feature/FT001"-branch 并想相应地改变一切:
- 重命名分支:
git branch -m feature/FT001 - 删除旧分支并推送新分支:
git push origin master feature/FT001 - 重置上游分支:
git push origin -u feature/FT001
在这种状态下,master 分支在本地和原点不再存在。
我现在想添加一个新的(空的)master-branch。看起来我以前从未在master 上工作过(没有提交)。历史应该看起来像有一个master 分支,然后我创建了feature-branch 并将所有内容提交给feature-branch(最终将我的feature-branch 合并到master-branch)。
我该如何完成这些最后的步骤?
【问题讨论】:
-
你不能:在 Git 中没有“空分支”这样的东西。分支名称是指向提交的指针。它必须有一个提交指向。 (换句话说,您必须先更改问题陈述要求,然后才能解决问题。)
-
@torek:那我该怎么处理呢?我是否需要在一开始就在我的主分支上创建一个“初始提交”然后分支出来?之后是否仍然可以这样做,而不会过多地混淆历史?
-
那(初始提交,例如,只是一个自述文件)是一种方法,但使用您使用的工具无法做到这一点。一个更简单的方法是在重命名的分支中选择任何现有的提交并将该提交称为“master”。 (显而易见的选择是最新的提交。)也许更好,根本不用
master。