首页 > 解决方案 > 重命名主分支并创建一个新的空主

问题描述

git subtree在现有存储库上使用了该命令,以便将子文件夹提取到其自己的存储库中。然后,我将提取的提交推送到它的新存储库,放入master-branch.

但是,我应该一直把它推入"feature/FT001"-branch并想相应地改变一切:

  1. 改名为分支:git branch -m feature/FT001
  2. 删除旧分支并推送新分支:git push origin master feature/FT001
  3. 重置上游分支:git push origin -u feature/FT001

在这种状态下,主分支在本地和原点不再存在。

我现在想添加一个新的(和空的)master-branch。它应该看起来像我以前从未工作master过(没有提交)。历史应该看起来像有一个master分支,然后我创建了feature-branch并将所有内容提交到feature-branch(并最终将我的合并feature-branch到 中master-branch)。

我该如何做这些最后的步骤?

标签: gitgithubgitlab

解决方案


我想你的目标是让它看起来所有提取的提交都只在feature/FT001分支中,并且master分支只被初始化。

如果你有 Git 2.23,你可以通过创建一个孤立分支来做到这一点:

git switch --orphan master

这将暂存您的所有文件,因此您必须取消暂存它们并对该孤立分支进行空提交:

git reset
git commit --allow-empty -m "Initial commit"

如果你有 Git 2.28+,你可以在一个命令上执行switchand the :reset

git switch --discard-changes --orphan master
git commit --allow-empty -m "Initial commit"

推荐阅读