git - 重命名主分支并创建一个新的空主
问题描述
我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-branch
。它应该看起来像我以前从未工作master
过(没有提交)。历史应该看起来像有一个master
分支,然后我创建了feature-branch
并将所有内容提交到feature-branch
(并最终将我的合并feature-branch
到 中master-branch
)。
我该如何做这些最后的步骤?
解决方案
我想你的目标是让它看起来所有提取的提交都只在feature/FT001
分支中,并且master
分支只被初始化。
如果你有 Git 2.23,你可以通过创建一个孤立分支来做到这一点:
git switch --orphan master
这将暂存您的所有文件,因此您必须取消暂存它们并对该孤立分支进行空提交:
git reset
git commit --allow-empty -m "Initial commit"
如果你有 Git 2.28+,你可以在一个命令上执行switch
and the :reset
git switch --discard-changes --orphan master
git commit --allow-empty -m "Initial commit"
推荐阅读
- windows - /bin/sh: cl: command not found 在 cygwin 中使用 usig make
- java - 如何实现无尽的 ViewPager?
- android - 启动自定义活动 onBackpressed 两次启动活动
- jquery-ui - jquery ui 文件在哪里?
- c++ - (C++) 重载“>>”运算符的问题
- sql-server - UUID在sql server中的存储方式不同
- c - 动态分配内存给二维字符数组
- python-3.x - 需要有关循环的代码帮助
- sql - Sqlite3没有将值插入数据库
- sql-server - 如何检索报表中未设置的参数值?