我真的需要一些關于分支重命名的幫助。
不幸的是,我無法使用主分支推送 github,我必須使用 master 分支,因為我無法在本地更改我的分支名稱。
我需要提交一次才能使用此命令:git branch -M main。
但是,如果我創建一個新檔案并放置一個 git init,顯示分支將是 master 并且正在運行git branch -M main將導致我出現此錯誤:
error: refname refs/heads/master not found
fatal: Branch rename failed
我想知道是否有任何其他方法可以將本地分支重命名為 main,而無需在每個檔案創建后手動重命名。
非常感謝。
uj5u.com熱心網友回復:
在進行提交之前將名稱從本地更改master為main本地。請按照以下步驟操作:-
導航到您的專案所在的目錄。
它將顯示隱藏檔案,因為默認情況下,.git 將被隱藏。
在 .git 中,有一個檔案 ,
HEAD在文本編輯器中打開它。你會看到,
ref: refs/heads/master。將 master 更改為 main in
ref: refs/heads/master。
它將主分支重命名為主分支。
uj5u.com熱心網友回復:
TL; 博士
進行提交,或使用git checkout --orphan main(或git switch --orphan main),或使用(git init -b main如果有)。
長的
在一個新的、完全空的 Git 存盤庫中,Git 處于一種有點奇怪的狀態:
- 一個分支名狀
master或main必須包含一些有效的哈希ID,現有承諾。 - 尚無提交。
因此,尚不存在任何分支名稱。
盡管如此,還是git status會告訴你你是on branch master,例如。這是奇怪的狀態:你在一個不存在的分支上。
在最近的 Git 版本中,git branch -m和git branch -M- 兩者都重命名一個分支 - 被改進,以便他們可以重命名這個不存在的分支。如果您有這些最新版本的 Git(2.30 或更高版本)之一,git branch -m main將在此狀態下作業。
但是,舊版本的 Git 只允許您重命名實際存在的分支。所以在這種情況下,要使用git branch -m main,你必須,正如你所說:
提交一次
注意你只需要進行一次提交,這樣提交就存在,分支名稱就存在。它的行為創造了提交,而在這種狀態下創建的分支的名稱。分支名稱在那里,只是它不存在。然后你運行git commit,現在分支名稱在那里并且確實存在。您剛剛進行的新提交是根提交:沒有父提交的提交。這就是全部。
您不必使用git branch -m重命名這個未出生的分支。 如果你不希望使用git branch -m重命名它,它必須是一個現有的分支,但你可以將其重命名存在之前。在 2.30 之前的 Git 版本中,您只需要使用其他一些命令即可。
在 Git 2.28 或更高版本中,git inittakes --initial-branch(或-b簡稱)允許您指定不存在的分支的名稱,但您正在使用它。所以git init -b main做的伎倆。
如果您的 Git 早于 2.28,您可以git init照常運行,然后使用帶有--orphan標志的 checkout 或 switch 命令。這將創建一個尚不存在的分支。這個標志從 Git 1.7.2 開始就起作用了:它的目的是重新創建你在一個不存在的分支上的特殊狀態。然后您進行的下一次提交創建該分支,方法是創建一個根提交并將新提交的哈希 ID 像往常一樣存盤在分支名稱中。哈希 ID 的存盤創建了分支名稱,現在解決了在不存在的分支上的特殊情況。
請注意,當您在不存在的分支上并使用 時git checkout --orphan,您會更改不存在的分支的名稱。舊名仍然不存在,所以實際上你是要創建一個有前途提交現在忘記了分支:Git有不知道,master從來沒有跳進存在,而不會去創造它。相反,它將創建這個尚不存在的其他名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/372637.html
下一篇:如何添加來自不同存盤庫的檔案?
