2017-01-07 28 views
0

我初始化一些地方的git回購協議,但他們都沒有一個<project>.git文件;只有一個.git目錄。我想克隆這些回購到另一臺機器在本地網絡上的一個,但clone似乎需要一個<project>.git文件。這個文件如何生成?哪裏文件<project> git的從何而來?

+1

你是什麼意思, 「'clone'似乎都需要一個' .git'文件」?你是否試圖做一個克隆並獲取錯誤信息? –

+1

'<>'(三角括號)中的單詞通常指的是一些不可避免的參數或結果。在這種情況下,當你初始化裸倉庫,你會得到像' .git' **文件夾**,其中'項目'只是你的項目的名稱,它可能是任何字,詞,... – 0andriy

+0

我忽略要提到我實際上想要做的是在網絡(NFS)共享上設置一個克隆並同步這兩個存儲庫。也許我應該使用'rsync'。 –

回答

1

要獲得project.git(而不是project/.git),您需要使用git clone --baregit init --bare

這將創建一個bare repository,一個只用git的內容,並沒有工作樹。

1

如果你只是需要將項目與它的所有文件和git數據複製到另一臺機器,然後只複製該文件夾您已使用.git存儲庫。 .git目錄包含git的元數據(以及所有版本歷史記錄)。這將有您的項目與Git版本歷史的完整工作樹。這被稱爲非裸倉庫。

非裸存儲庫是另一個存儲庫的副本,加上本地狀態,如.git/HEAD,它指示檢出哪個版本,索引,用於標識檢出的內容已更改樹並幫助準備提交對象等。

裸回購是project.git其中不包括工作樹和.git文件夾。與git init --baregit clone --bare創建一個純倉庫是基本的共享。如果您正在使用一個開發團隊合作,並需要共享變爲回購的地方,那麼你就可以創建在所有用戶都可以把他們的變化集中的地方裸露的庫。

因此,如果您需要bare回購即project.git您將需要創建一個。目錄中的project.git.git文件夾與包含git元數據和版本歷史記錄的文件夾相同。