2012-08-22 122 views
6

我跟着this帖子來設置遠程git回購。git初始化遠程回購

而是從頭開始的,

  1. 我做了一些發展,我PC1(回購與git的init建立)
  2. 現在,我想回購移動到服務器(同一個子網)

    ssh [email protected]
    mkdir my_project.git
    cd my_project.git
    git init --bare

  3. 然後,本地

    cd my_project
    git remote add origin [email protected]:my_project.git
    git push -u origin master

現在,在遠程(服務器)的回購協議,我看到這些文件夾

分支config說明HEAD鉤info對象裁判

我期待/想看相同的內容作爲我的本地(pc1)git回購

bin doc src

+1

我想你不明白'--bare'選項的作用。 –

+2

在* local *版本庫中,查看'.git'文件夾。這就是'git'存儲倉庫信息的地方,這就是服務器存儲的內容。它沒有*工作目錄*,它只存儲倉庫信息 - 即'.git'文件夾的內容。 – simont

回答

8

您在遠程端初始化裸倉庫。這意味着它存儲歷史記錄,但沒有工作目錄(翻譯 - 沒有實際的項目結賬)。你看到的結構是正常的。

+0

謝謝克里斯。所以,如果我在步驟2(在服務器中)省略init,它是否會按預期工作。這是正確的方法,以便服務器回購反映我的本地。 – bsr

+0

我不建議你在沒有'--bare'的情況下運行它。原因是這樣的:假設你在某個遠程客戶端上進行更改。然後你推送到你的服務器。你會*期望*服務器上的工作目錄被自動更新。情況並非如此。因此,事情會變得混亂。相反,我建議您只是習慣中央服務器應該是裸露的想法,並且任何時候您想提交,都可以在其他地方克隆該項目並將更改推回原處。 –

4

git init --bare意味着你創建一個庫,而不是工作庫。裸倉庫通常存儲在服務器上,它看起來就像工作倉庫的.git目錄。