2012-07-04 183 views
5

在工作中,我們在服務器上使用svn,但我在本地使用git(通過git-svn)以利用不準備共享的速度/分支/提交等。如何保持備份的git倉庫與本地同步,「git push --mirror」或「git remote update」

這工作正常,但我不舒服只是一個我的電腦改變了一天,結束萬一出現錯誤,並會喜歡在我們的文件共享上擁有專用的備份回購。

我創建使用命令我的本地回購的副本是這樣的:

git clone --mirror MyRepo z:/MyRepo.git 

,並添加了這個當作遙控我的地方有這樣的:

git remote add backup z:/MyRepo.git 

什麼是最好的在一天結束時保持備份庫與本地備份庫同步的方法?

我認爲它是下列之一,但不知道它們是否相等,或者如果不是什麼折衷。

  1. 在本地資源庫:git push --mirror backup

  2. 或者在備份庫:git remote update

或者的確,如果有更好的辦法?

+0

像cron作業中.git目錄的夜間rsync可能比使用git本身作爲備份解決方案更合適。如果你正在尋找一個手動方法,'git push --mirror'到一個裸倉庫就可以。 – meagar

+0

@meagar不幸的是,我們都有筆記本電腦,每天晚上都必須關閉,所以我無法獲得cron工作方式。目前做git推動的事情,只想知道選項2是否基本相同。 – Argos

+0

我使用'git push --mirror backup'(備份是我的遠程備份git repo)。然後我使用我寫的腳本,如果我需要從運行'git fetch backup refs/remotes/*:refs/remotes/*'的備份中恢復,以及一些git-svn resync的東西(因爲我不想必須解析整個SVN服務器,因爲這花了幾天的時間才能讓我的所有項目都移植,並且只需要幾分鐘的時間 - 如果是這樣 - 從我的備份中克隆和刷新)。 –

回答

0

如果你有機會與SVN倉庫服務器,您可以使用以下方案:安裝SubGit進入SVN倉庫(它會在服務器上創建一個Git倉庫,這將是不斷地在同步與SVN倉庫,你可能會認爲它是SVN存儲庫的Git接口)。 然後,只需使用純Git接口(拉,推)而不是git-svn,就好像它始終是一個Git存儲庫。所有更改將自動與SVN同步。 這種方法與你描述的有點不同,因爲你直接在服務器上有鏡像,但對你來說可能很有趣。

+0

恐怕我無法訪問SVN服務器,本來是一個不錯的解決方案。 – Argos