2013-04-03 116 views
2

我最近把我的網站放在Git版本控制下。我使用git-ftp上傳文件,我已經設定,從而使master分支是應該是服務器上的內容,而live分支是實際服務器上的內容。我需要做出這樣的區分,因爲我有時會在沒有Internet連接的情況下開發,因此無法立即上傳。所以,爲了上傳,我做了:git checkout live;git merge master;git ftp push;我想自動執行此過程,而不會丟失工作目錄狀態的其餘部分。在將來,我還將設置幾個文件的自動備份,這些文件將被ftp刪除並提交給live分支。將git倉庫克隆到它自己的.git目錄是否安全?

爲了做到這一切,我將需要另一個只能被自動化進程使用的克隆,並且總是會有一個乾淨的工作目錄。顯然,放置它的地方,因爲它永遠不需要查看,位於主存儲庫的.git目錄中。這樣,我的文件系統中的其他地方就沒有克隆的副本,它仍然處於隱藏狀態,很明顯它是內部組件的一部分,不應該被嘲笑。如果這個效果很好,我甚至可以提交一個補丁來修復git-ftp issue #180這個方法。

但是,我不知道是否將隨機東西放在.git文件夾中是一個好主意 - 我無法找到任何有關副作用的文檔。

回答

0

A .git目錄似乎完全忽略任何額外的元素,因此直接在.git中添加git repo應該可以工作。
如果你在一個子目錄添加您的嵌套式回購等,例如,.git/refs(見Git Internals - Git References

注意,你也可以有一個混帳回購協議在你目前的git回購任何地方,是行不通的,作爲一個名稱,例如,.ftprepo(名稱以點開頭,默認情況下應該隱藏)的目錄

1

我在找別的東西時發現錯誤答案!

根據https://www.kernel.org/pub/software/scm/git/docs/#_file_directory_structure,「更高層次的SCM可以提供和管理$ GIT_DIR中的附加信息」。這似乎意味着可以在.git中存儲其他信息而不會導致問題,包括大概是存儲庫的另一個克隆。

+0

並刷新之前檢查,如果其他人已經回答。對不起,關於... – Wolfgang 2013-04-04 14:11:37

+0

我認爲這是一個很好的補充,我的答案,所以+1 – VonC 2013-04-04 14:44:28