2013-12-11 63 views
2

我已經設置了遠程git回購,並推動我的本地回購遠程回購。這種精細的工作如預期,但在遠程回購,我沒有看到相關的項目中的文件,它只是有branchesconfigdescriptionHEADGit遠程回購,不顯示文件

如果是回購實際的項目文件?

這裏就是我所做的:

遠程服務器:

cd /var/www/directory 
git --bare init 

本地項目(在混帳回購協議):

git remote add remote [email protected]:/var/www/directory 
git push remote master 

這個工作,它推動你所期望的。只是當我去/var/www/directory項目文件不在那裏,只有git相關的文件。

+0

您能否提供用於添加git remote,合併更改並將提交推送到遠程的git命令?你是否將本地分支上的提交與遠程分支合併? –

+0

剛剛更新我的問題,謝謝 – dzm

回答

0

您已創建一個「裸」回購。它不包含有關提交信息的文件。

Git中的「裸」存儲庫只包含版本控制信息並且沒有工作文件(無樹),並且不包含特殊的.git子目錄。相反,它直接在主目錄中包含.git子目錄的所有內容。

http://bitflop.com/document/111

它看起來像你要推到部署的變化。相反,你應該做的是在你的/var/www/directory中創建一個非裸回購,並從你的開發回購或裸倉回購。您將在您的位置有一個非裸回購,並且當您要部署更新時,您將從將更新文件的目錄運行git pull。如果使用git checkout <SHA>

+0

謝謝,所以如果我創建一個非裸露的回購,但當我推到它,我得到'[遠程拒絕]主 - >主(分支目前檢出)' – dzm

+0

我有點困惑,你從開發回購或裸回購拉動你的意思。所以我們說5個服務器,我們'部署'。我希望能夠爲我們的部署推送所有這些遠程回購站點。 – dzm

+0

您無法推送到非裸倉庫。您將需要讓您的部署從遠程存儲庫中提取代碼。你會希望有一個腳本登錄到服務器上並執行'git pull'來獲取更新。如果你能夠推進到非裸回購,它可能會導致各種麻煩,因爲你可以將更改推向開發商回購並更改其回購狀態。 – Schleis

2

上次更新時出現重大問題,這也將使您可以輕鬆地將代碼移到以前的版本。正如@Schleis指出的那樣,它是一個裸倉庫。你的提交實際上在那裏。你看不到它們,因爲它們存儲爲git blob文件。您可以通過運行git log來驗證您的提交是否存在。它應該顯示與您當地的回購相同的commit sha

$ cd server 

(BARE:master)$ git log 
commit 19b7105fac9e44d0130d662d3d372340b0e9faea 
Author: Jevgeni Zelenkov <[email protected]> 
Date: Wed Dec 11 16:21:36 2013 +0100 

    init 

$ cd ../local 

(master)$ git log 
commit 19b7105fac9e44d0130d662d3d372340b0e9faea 
Author: Jevgeni Zelenkov <[email protected]> 
Date: Wed Dec 11 16:21:36 2013 +0100 

    init 

截至版本1.7.0的Git只--bare庫可以接受推&拉命令。所以如果你想用你的git倉庫作爲服務器,它必須是--bare


git-show是一個通用的命令來處理git內部。 git show man page