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