2012-08-09 67 views
8

我剛開始使用git進行版本控制。我想在本地文件服務器上保存我的存儲庫的備份副本。在閱讀了備份git存儲庫的正確方法之後,我決定將存儲庫作爲git包存儲在文件服務器上。如何推送到一個混帳包

我可以打包我的存儲庫並將生成的包複製到文件服務器。檢查。我也試過克隆並從中拉出來。一切運作良好。不過,我還想不時推出我的本地更改。當我執行類似

git push bundlefile.git 

我得到的錯誤:

error: failed to push some refs to 'bundlefile.git' 

您可以克隆或從包拉,但它是不可能推到了嗎?每次我想備份時,我都不想創建一個整個存儲庫的捆綁包。

此用戶錯誤還是不打算推送到?

+0

有一個很好的例子,說明如何在'git bundle'手冊頁末尾操作和增量更新bundle文件。 – Christopher 2012-08-09 03:40:46

+0

這似乎是捆綁和裸回購得到一個很遠的地方。如果你只是想備份你的git repo,只需tar(或zip)上.git目錄並完成它。也許先做一個「git gc」來縮小尺寸。這不是一個難題,不需要複雜的解決方案。 – 2012-08-09 04:37:40

回答

5

您不能直接推送到包文件。軟件包文件是存儲庫的壓縮表示,修改它將涉及到再捆綁,推送和捆綁。

這樣做的一種方法就像你說的那樣,每次你想做備份時都要創建一個新的包。

另一種方法是在文件服務器上創建一個存儲庫,然後推送到該存儲庫。裸存儲庫是沒有工作目錄的存儲庫,基本上是來自普通克隆的.git目錄的內容。您可以使用git init --bare創建裸倉庫。

+0

這是一個很好的建議。我本來希望有一個壓縮的文件作爲我的備份解決方案,但推送的簡易性比這些考慮更重要。謝謝! – farnsy 2012-08-09 03:38:34

-4

聽起來好像您在文件服務器上存在權限問題。確保您的用戶/組具有寫入權限。