2009-11-14 106 views
8

我想使用一個使用git作爲後備存儲的程序(我是git的新手)。在初始化時,這個程序做了:「不是混帳存儲庫」

"git" "--bare" "rev-parse" "refs/heads/index" 

導致:

fatal: Not a git repository: '/home/david/blog.git'

我跟着this tutorialgit initgit add test.txtgit commit。回購似乎時(在正確的目錄),I(例如)做正確的行爲:

$ git status 

什麼rev-parse做什麼我必須做我的回購,使其工作?

回答

7

如果git status正在工作,那麼您必須使用工作樹處於非裸存儲庫。 git status需要一個工作樹。

如果程序正在運行git --bare ...那麼它期望給定的目錄是一個裸露的git存儲庫,即沒有工作目錄。

reponame.git的命名約定通常保留用於裸存儲,而非裸存儲通常使用目錄名稱reponame幷包含.git子目錄。

如果/home/david/blog.git實際上是一個非裸存儲庫,那麼它將有一個.git子目錄。如果是這種情況,您可以將程序指向/home/david/blog.git/.git,但我不禁感到,將其指向一個真正的裸倉庫會更安全。它是什麼程序以及初始化其數據存儲的指示是什麼? `

+0

謝謝 - 這已經清理了很多東西。現在,我該如何製作'refs/heads/index'? (我只能在'refs/heads'目錄中看到'master')。 該程序是「tekuti」(http://wingolog.org/software/tekuti/),它建議從wordpress遷移商店(我沒有使用過,所以沒有)。 – user147714 2009-11-14 17:57:13

+0

你確定你需要*來創建一個名爲'index'的分支嗎?可能tekuti正在檢查分支是否存在,以便它可以使用它自己的內容? (如果你確實需要使'git branch index'應該可以工作。) – 2009-11-14 18:27:37

+0

Spot on! (也許最簡單的方法就是使用Wordpress ......) – user147714 2009-11-17 12:56:51

6

也許「git init」是你需要做的。

+0

請嘗試'git init --bare'。另一個答案指出,他需要的只是'.git'目錄,而不是一個工作目錄。 – 2009-11-14 15:13:39

+0

謝謝 - 我編輯了這個問題,以便顯然我做到了。 – user147714 2009-11-14 15:57:18