2012-02-06 55 views
113

我有一個專用服務器運行git 1.7 當我致命的:不是有效的對象名稱:「主人」

git init 

文件夾不會創建一個主分支。 原因當我這樣做:

git branch 

它沒有列出任何東西。 當我這樣做:

git --bare init 

它創建的文件。 當我鍵入

git branch master 

它說:

fatal: Not a valid object name: 'master'. 

回答

170

當我git init一個文件夾不會創建一個主分支

這是真實的,預期的行爲。 Git不會創建master分支,直到您提交了某些內容。

當我做git --bare init它創建的文件。

非裸git init還將創建相同的文件,在你的項目的根隱藏.git目錄。

當我鍵入git branch master它說:「致命的:不是有效的對象名稱:‘主人’」

這又是正確的行爲。直到你提交,沒有主人分支。

你還沒有問過一個問題,但我會回答我假設你打算問的問題。將一個或多個文件添加到您的目錄,然後git add他們準備提交。然後git commit創建你的初始提交和master分支。

+1

那麼,如果我從來不想要一個名爲「master」的分支指針呢?如果我想將它稱爲「主」,該怎麼辦?沒有辦法用第一個分支指針的不同名稱開始?沒有「git init」參數?我可以去更改.git/HEAD中列出的名稱嗎?還有一些其他文件需要更改嗎? – Jemenake 2013-05-13 17:49:15

+1

@Jemenake然後啓動你的倉庫,進行提交併重命名分支。如果你真的想避免創建一個「master」分支,編輯'.git/HEAD',並將'refs/heads/master'改爲'refs/heads/main',但是*沒有任何理由*做這個。在第一次提交後重命名你的分支。 – meagar 2013-05-13 20:15:39

+7

你可以使用'git checkout -b '來改變HEAD - 你不需要編輯文件。 – 2013-10-31 14:56:53

14

首先,當你創建一個「裸倉庫」時,你不會對它做任何工作(它不包含工作副本,所以git branch命令沒有用)。

現在,即使在執行git init之後,您沒有master分支的原因是沒有提交:當您創建第一個提交時,您將有一個master分支。

+1

好的,清楚。但是當我承諾它說:致命的:空識別 – 2012-02-06 15:28:55

+0

我修正了。但是,當我想從其他計算機上獲取此回購時。我應該在那裏做git init嗎? – 2012-02-06 15:37:22

+0

@RoyvanZanten你可以使用'git clone'來保存在接收端做'git init'。 – Borealid 2012-02-06 16:13:45

14

Git在完成第一次提交後創建主分支。如果存儲庫中沒有代碼,沒有分支可供使用。

4

您需要在創建新分支之前至少提交一次主數據。

相關問題