GitHub 如何更改預設分支 (default branch)

簡單來說
到 GitHub 專案設定改,然後本地重置就可以了。
背景
最近在弄 emfont 的文檔,整個專案架構大改。從 Yarn 改到 pnpm,框架也從 Docusaurus 變成 Fumadocs,因此是從頭到尾重新弄。
為了重新整理,我創建了一個全新沒有父母 (Parent,之前的 commit 紀錄) 的孤兒 (orphan) 分支名叫 fuma
(額我不確定是不是這樣翻但我都這樣說。)
1git checkout --orphan fuma
以前的做法會是先生一個兒子再把父母斷頭讓他變成孤兒。
1echo ref: refs/heads/newbranch > .git/HEAD
但這實在有點暴力,現在 Git 1.7.2 之後可以用
git checkout --orphan
來做。
創了新分支之後就可以砍掉重來了。
1git rm -rf .
接著就是 pnpm install
那些的了。都做好之後就可以正常 push 了。
如何更改預設分支
確定換好了之後我想要把預設分支改成新創的 fuma
。你可以在專案的 Settings
裡面找到 General
的 Default branch
來更改。
如何更改遠端預設分支
改好了之後,如果你的本地有 clone 這個專案,你還需要把遠端預設分支也改成新的 fuma
。
1git branch -m main fuma
2git fetch origin
3git branch -u origin/fuma fuma
4git remote set-head origin -a
但這時你目錄的檔案還會是舊的,且你會發現 git pull
時會失敗。
1$ git pull
2fatal: refusing to merge unrelated histories
我們直接 git reset --hard
來重置本地分支即可。
1git reset --hard origin/fuma
這樣就大功告成啦!