您可以仅使用瓷器 Git 命令创建一个分离的主分支:
git init
touch GO_AWAY
git add GO_AWAY
git commit -m "GO AWAY - this branch is detached from reality"
这给了我们一个带有粗鲁信息的主分支(你可能想要更有礼貌)。现在我们创建我们的“真实”分支(我们称它为主干以纪念 SVN)并将其与master分离:
git checkout -b trunk
git rm GO_AWAY
git commit --amend --allow-empty -m "initial commit on detached trunk"
嘿,快! gitk --all将显示master和trunk,它们之间没有链接。
这里的“魔法”是--amend导致git commit创建一个与当前 HEAD 具有相同父级的新提交,然后使 HEAD 指向它。但是当前的 HEAD 没有父级,因为它是存储库中的初始提交,因此新的 HEAD 也没有得到父级,从而使它们彼此分离。
旧的 HEAD 提交不会被git-gc删除,因为 refs/heads/master 仍然指向它。
仅需要--allow-empty标志,因为我们正在提交一棵空树。如果在git rm之后有一些git add ,那么就没有必要了。
事实上,您可以随时通过在存储库中对初始提交进行分支、删除其树、添加分离树、然后执行git commit --amend来创建分离分支。
我知道这并没有回答如何修改远程存储库上的默认分支的问题,但它给出了关于如何创建分离分支的明确答案。