2013-01-08 141 views
0

在閱讀教程時,我一直聽說我需要創建一個名爲裸倉庫的共享庫,用於共享回購庫中的所有文件。在GIT中需要一個裸回購

我還聽說裸露的回購不包含任何worfiles。

如果它沒有任何工作文件,那麼其他用戶將在其本地機器上克隆什麼?

我目前在我的linux服務器有一個目錄,我需要在幾個用戶之間共享,這些用戶將通過eclipse ide進行訪問。

任何人都可以用普通的詞語來解釋上面強調的問題。

+0

你讀過[在服務器上獲取Git](http://git-scm.com/book/en/Git-on-the-Server-Getting-Git-on-a-Server)嗎? – ks1322

+0

是的,但我沒有得到裸回購的概念和它的要求。 –

回答

2

我還聽說裸露的回購不包含任何工作文件。

是的。

遠程倉庫通常是一個裸倉庫 - 一個沒有工作目錄的Git倉庫。所有數據都存儲在.git目錄中,不需要工作目錄。這只是一個協作點。

如果它沒有任何工作文件,那麼其他用戶會在他們的本地機器上克隆 ?

來自.git目錄的數據將被克隆。

+0

如果我希望用戶通過此裸回購檢查具有實際內容的實際文件夾,我需要做什麼。 –

+1

@gautamvegeta:從裸露和非裸露的存儲庫進行克隆的方法相同。用戶不需要特別的指示,普通的'git clone'對兩者都有效。 –

+0

我聽說過我需要post-receive鉤子,他們是什麼,以及如何設置這些。我聽說我可以通過這個裸露的repo使用這個post-receive鉤子克隆包含工作文件的實際倉庫。 –

3

在閱讀教程時,我一直聽說我需要創建一個名爲裸倉庫的共享倉庫中的所有文件。

當您將git push添加到遠程存儲庫時,您可以覆蓋working directory中的文件。爲避免這種情況,您可以使用bare存儲庫,該存儲庫甚至沒有working directory

然而,因爲沒有working directory,你不能在工作bare回購,你只能push它,並從中pull。這使得它成爲多個用戶的「收集點」或「協作回購」的理想選擇 - 這就是爲什麼git教程說要使用服務器的bare存儲庫。

正常git回購看起來是這樣的:

my-repository/ 
    .git/ 
     COMMIT_EDITMSG 
     ORIG_HEAD 
     description  
     index 
     objects 
     FETCH_HEAD  
     branches  
     gitk.cache  
     info   
     refs 
     HEAD   
     config   
     hooks   
     logs 
    file1 
    file2 

my-repositoryworking directory,包含你file1的工作文件,file2等所有的git數據存儲在.git文件夾中。

bare存儲庫中,您沒有工作文件夾。所有你必須是.git文件夾,存儲在庫中的頂級內容:

my-bare-repository/ 
    COMMIT_EDITMSG 
    ORIG_HEAD 
    description  
    index 
    objects 
    FETCH_HEAD  
    branches  
    gitk.cache  
    info   
    refs 
    HEAD   
    config   
    hooks   
    logs 

這是其他用戶複製。

+0

謝謝你的答覆。我得到了你的建議。我還有另一個目錄包含我想要其他人結帳的實際文件。現在我需要做什麼? –

+0

@gautamvegeta:(1)將這些文件提交到存儲庫。 (2)將提交推送到公共存儲庫。 (3)告訴其他用戶從公共存儲庫克隆/提取。 –

+0

我聽說過我需要post-receive鉤子,他們是什麼,以及如何設置這些。我聽說我可以通過這個裸露的repo使用這個post-receive hook來克隆包含工作文件的實際倉庫。 –