2012-12-03 31 views
1

我開始使用Git和我的項目VCS。 我已創建在/碼回購使用哪裏是項目文件在遠程回購在Git?

git init --bare 

遠程回購和從推本地回購變化到那裏。那麼我想將項目文件從那裏移動到/ var/www/project以便http:// ....可訪問。但我沒有在/ codes-repo上看到任何項目文件(index.php,css /,....)來複制它們,那裏只有git文件和文件夾。 他們在哪裏?

回答

4

裸倉庫沒有結帳。也就是說,裸存儲庫僅保存提交信息 - 它不會在存儲庫文件夾中保留磁盤上實際文件的副本。

裸倉庫只能推或拉。要獲得這些文件,最好的方法是克隆裸倉庫(作爲非純粹的克隆),然後在克隆中運行結賬。

另一種選擇,如果你感覺勇敢,是純倉庫轉換成非純倉庫(How do I convert a bare git repository into a normal one (in-place)?

+0

我想我得到了我的答案,謝謝。 –

+0

還有用於從數據庫中提取對象的git命令。例如。 'git show'。 – bames53

1

純倉庫沒有所謂的工作目錄,所以不會有任何文件系統對象。

Git仍然跟蹤內容,提交,標籤等,但將它們存儲在某處。當你在非存儲庫中使用git checkout時,git會更新索引(存儲庫中的文件)以反映作爲參數給出的tree-ish對象。

2

將文件從一個裸倉庫的副本,你可以使用git存檔

GIT_DIR=~/BARE_REPO git archive --format tar master | tar xvf - 

git的存檔命令將轉換目標承諾(marter,例如),以tar格式,發送到標準輸出。你可以將它管到一個tar命令來立即提取。

另一種方法是檢出存儲庫。

git checkout ~/BARE_REPO myproject 

但是,把這個整個目錄放到你的web服務器上是不合適的。否則,您的整個.git目錄將被訪問。任何人都可以獲取源代碼並完成提交歷史記錄(當然,您可以通過.htaccess或nginx設置阻止這些訪問)。

+0

裸倉庫沒有.git目錄,這就是爲什麼它被稱爲裸倉庫# – dunni

+0

已編輯。這是一個錯字。只需指向裸倉庫目錄而不是.git目錄。 – miaout17