PTT推薦

[請益] 大型Git版本庫的備份或替代方案

看板Soft_Job標題[請益] 大型Git版本庫的備份或替代方案作者
danny0838
(道可道非常道)
時間推噓44 推:45 噓:1 →:63

我有一些大型的Git版本庫,存放特定專案要用到的文獻資料。
目前檔案大約2000餘個,大多是pdf、doc(x)檔案及一些文字檔,
單檔大小可達數百MB,版本庫總大小約數十GB。
由於總版本庫過大,無法同步到 GitHub、GitLab 備份。

使用Git管理的原因是這些檔案修改內容時希望有版本回溯機制,
有時也會有資料夾層級的重整(移動至其他資料夾、更改檔名等),
一樣希望有資料夾層級的版本回溯機制。
此外希望版本記錄是可自訂的(類似 Google 雲端硬碟的永久保存版本),
並且以開放格式儲存(而不是只存在 NAS 內部)。
目前是 Git 用得比較順手,但如果有更好的備份及版控方案會考慮。

不曉得各位先進有這麼大的Git版本庫時,會用什麼方式做備份?

除了備份到外接硬碟可以直接在本機操作 push, pull 以外,
如果想備份到其他電腦,遠端桌面連線無法做Git同步...
Syncthing 之類的檔案同步方式也不適合用於Git...

有在想架設 NAS,
但不曉得 NAS 是否允許 Git 同步以及內部操作 repack 等維護?
(repack 大型 repo 怕因為記憶體或 CPU 限制而無法完成,
或過程中整個 NAS 掛掉)

或者有其他比Git更好的替代方案?


(目前沒看到更適合討論Git問題的版,如有更適合的版歡迎告知)

--
《終結內容農場》瀏覽器套件
Chrome: http://bit.ly/CFTGC (桌機 & Kiwi Browser on Android)
Firefox: http://bit.ly/CFTFx (桌機 & Firefox for Android)
真相:http://bit.ly/CFTss1http://bit.ly/CFTss2
詳細介紹:http://bit.ly/CFTinfo

--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.137.15.240 (臺灣)
PTT 網址
※ 編輯: danny0838 (220.137.15.240 臺灣), 02/01/2022 23:21:44

forever21502/01 23:21自己架Git Server 在弄一套Mirror 就備份完了

想問有什麼具體的架設方案嗎? 假如兩台都是 Windows 電腦,有什麼簡單的架設方案嗎? 考慮過 NAS,擔心的問題如上所述。 我知道還有一招是租 VPS 架 Git server, 不過 VPS 普遍是用於架網站,單位容量價格偏高, 如果是純做資料備份似乎不太划算,因此打算作為最後線備案。

※ 編輯: danny0838 (220.137.15.240 臺灣), 02/01/2022 23:29:07

neo527702/01 23:28自己組電腦,裝一個gitserver這樣,然後多備份一個?

MoonCode02/01 23:53ur-own-git-server/

MoonCode02/01 23:54h-files/managing-large-files/about-git-large-file-s

MoonCode02/01 23:54torage

目前的問題應該是 Windows。 對於另一台 Linux 電腦,只要架起 SSH 就可以 git remote 了。 但是 Windows 的 OpenSSH 似乎不能這樣做。 專門組一台 Linux 電腦理論上是做得到, 但只為了幾十 GB 的版本庫組一台電腦不太划算, 希望能可以的話能和其他資料備份用同一台 NAS 解決。 (NAS 還在評估可行性未入手。如果無解可能只好架一台 Linux server 當 NAS?)

※ 編輯: danny0838 (220.137.15.240 臺灣), 02/02/2022 00:10:15

joshua520102/02 00:13你的東西都是binary 不適合git吧 那個也很難看diff

joshua520102/02 00:13s3/gcs那種的容量便宜每個檔案加個timestamp上去

doc 檔案的話其實 TortoiseGit 就有支援 diff,其實不差。 pdf 目前還沒找到 diff 方案,不過有版控總是聊勝於無。 你所謂加個 timestamp 是指手動檔案命名像 myfile.20220202.docx 這樣嗎? 這樣不是比 git 更傳統原始?XD

longlyeagle02/02 00:35binary用git版控很怪吧... 不如自己出個hash管理

longlyeagle02/02 00:37不然你乾脆用 amazon s3 直接用 versioning 功能最快

不太懂「自己出個hash管理」具體是指什麼?XD 目前主要仍是以本地作業為主,只是要找備份方案。 Amazon S3 似乎是純雲端服務?不曉得如何能滿足目前的需求?

musie02/02 00:371. Perforce 2. Mecurial

Mercurial 我以前用過,基本上沒 Git 好用,看不出來哪裡能解決問題? Perforce 似乎是付費VCS,能否說說有什麼feature能幫我解決問題?

※ 編輯: danny0838 (220.137.15.240 臺灣), 02/02/2022 00:51:15

forewero02/02 00:49直接上aws codecommit 他也是git 你的量應該是免費

AWS 應該沒有免費支援數十GB的私人repo...

roccqqck02/02 00:59pdf或圖片這種東西本來就不適合用git

roccqqck02/02 01:00這種東西還不如用單純用檔名+日期

roccqqck02/02 01:03你單檔能百mb一定是大量圖片的doc或pdf

yfr02/02 01:05我有一招很鬧,但我現在的確正在使用,Mac的時光機

roccqqck02/02 01:06除非你用latex或markdown或html

roccqqck02/02 01:06不然一堆圖片的檔案 你就算版控每次都超佔容量

yoche200002/02 01:26搞個VM呢 邏輯上的 stand alone server

本機使用時用 VM 效能會變差... 不過如果真的沒有 Windows to Windows 的同步方案, 可能最後會選擇用 VM 架一個 Linux git server 吧...

pttworld02/02 01:47windows你用gitblit這套免費的,硬碟容量你裝幾T應該夠

pttworld02/02 01:49基本上自己組一台桌上型最省錢,容量要多大有多大

DiLegend02/02 02:00聽起來直接用nas檔案管理就好吧?

DiLegend02/02 02:00一堆pdf你git也看不出改什麼吧

now9902/02 02:04檔案用git ?

now9902/02 02:05乾脆ftp nas 快照備份

Apache02/02 03:06git lfs

ken820302/02 03:37AWS S3 啊,開啟 versioning,同檔名的可以有版本區別,

ken820302/02 03:37所以你只要無腦蓋過去就好了

jimmy789lee02/02 03:56git lfs 正解

不曉得 LFS 如何解決 Git 跨機器同步的問題?

MonyemLi02/02 07:25s3加版控功能

MonyemLi02/02 07:26就上面ken提的

wahaha27902/02 08:14本來就是code的部分用git,不適合 git 的部分用dvc(da

wahaha27902/02 08:14ta version control)。

gn0074275402/02 09:00git-annex

Bencrie02/02 11:12版控不是給你備份檔案用的

jake08044902/02 13:05檔案應該用雲端比較好吧?git的專長不是處理檔案吧...

Git 不是用在備份,是用在版本控制。 正文就有寫了, 我需要

檔案層級

資料夾層級

的版本回溯機制(diff 倒不是那麼重要), 目前是 Git 用得比較順手,版本記錄也是以開放格式儲存。 如果有其他方案能滿足這些需求,我同意 Git 並非不可放棄。 不過前面看到的方案,比如 AWS 等,似乎並沒有資料夾層級的版本回溯。 (如果不需要資料夾層級的回溯,付費 Dropbox 或 Google Drive 應該也可以解決XD)

Belieeve02/02 14:05照上面大大說的找DVC好像滿多心得的 (英文

musie02/02 14:20mercurial LargefilesExtension 這麼舊了 不看一下..

這個和 Git LFS 有什麼不同嗎?

will350911102/02 15:28timemachine

alpe02/02 15:39Dropbox history version

abc092200102/02 17:20github 不是有大檔案 binary 的解決方案嗎

GitHub 有限制單檔 100MB 及版本庫 5GB(根據目前文件), 我的版本庫已經數十 GB 了,塞不進去。

※ 編輯: danny0838 (220.137.15.240 臺灣), 02/02/2022 17:39:17 ※ 編輯: danny0838 (220.137.15.240 臺灣), 02/02/2022 17:47:58

damody02/02 17:54你的問題可能在硬體不是軟體 升級硬碟用三星7000MB/s ssd

damody02/02 17:54組raid0 如果不在本機要再加上10gb網路線10gb路由器就可以

damody02/02 17:54

samchung02/02 20:18免VM,本機建個目錄bind進docker跑Gitea解決

xluds2480502/02 20:28Dropbox

Dropbox 有資料夾層級的版本回溯功能嗎? (讓某資料夾及以下內容回溯到之前某個時間點的狀態)

longlyeagle02/02 20:33自己管hash的意思是你定期抓checksum看更新做備份

longlyeagle02/02 20:36這樣Git只要存hash跟備份位置就好

longlyeagle02/02 20:37可以直接排進CICD裏面

這個看起來和 Git LFS 好像差不多?

timfan393902/02 20:58自己使用雲端專案架Gitlab伺服器,要多大有多大

tomap4101702/02 21:39你是不是沒看懂GIT LFS的意義?拜託別嗆人

tomap4101702/02 21:40LFS是幫你把二進位檔案傳到別的地方去,GIT只存指標

tomap4101702/02 21:40的概念。你依然是使用GIT版控

不太確定你的意思? 意思是把要版控的檔案塞進 LFS, 讓 Git 版本庫變小丟到 GitHub(但不傳 LFS 檔案), 而 LFS 檔案另外用一般檔案同步的方式處理?

htury02/02 21:41看起來跟git無關,只是要符合需求的檔案管理跟備份,買雲端

htury02/02 21:41空間存進去不就好了,有板控跟備份

htury02/02 21:48在依據需求寫個歸檔系統

平常被 Git 強大的版控和還原功能寵壞了, 目前找不到哪家雲端硬碟能達到類似需求@@

※ 編輯: danny0838 (220.137.15.240 臺灣), 02/02/2022 22:18:00

MonyemLi02/02 22:08人少gitea就夠了,設定檔改一下檔案大小限制

MonyemLi02/02 22:09剩下就硬體跟作業系統的限制了

guanting88602/02 22:26NAS + 自己手動在檔名數字編一編 or 自己設計歸檔軟

guanting88602/02 22:26體比較快

guanting88602/02 22:28PDF應該很難讓你做DIFF,因為檔案不一定可以透過程

guanting88602/02 22:28式抽出字,會因為被受保護 或 字被轉成純向量就無法

guanting88602/02 22:28直接比對了

guanting88602/02 22:30Dropbox 不錯 只是版本付費到最頂 應該也只能看到半

guanting88602/02 22:30年前的

guanting88602/02 22:33Git 的設計一開始就為 Linux Kernel 開發/維護而生

guanting88602/02 22:33的,而這個東東經歷過了百萬以上的 commit 你去上面

guanting88602/02 22:33拉下來大概 1G 多而已

guanting88602/02 22:35應該不適合用在原PO的需求上,因為人家是在維護軟體

guanting88602/02 22:35工程的啊XD.

timTan02/02 22:38試試git Dropbox 混搭如何。最適合你的工作流程

qmailtw02/03 00:01你有試過 OpenSSH 的 server 設定嗎?

acgotaku02/03 00:48幾百G算滿小了拉,gcp/aws起個容器 定時鏡像就解決了

acgotaku02/03 00:49也沒多少錢,絕對比你架nas還要安全

IcecreamHsu02/03 01:24GoodSync?

cha12297702/03 01:47不會改內容的東西用普通的雲端硬碟就好了吧

wulouise02/03 10:25生魚片刀切牛好不好用?

xxxxae8602/03 11:08一般都指定檔案吧?有指定資料夾層級的?

joehwang02/03 11:18往備份套件的方向找呢? 這類軟體可以滿足資料夾回復,使

joehwang02/03 11:18用增量備份佔的空間也不大 e.g. Duplicati, Acronis

kyrc02/03 12:40gitea + dropbox

roccqqck02/03 17:21問一下gitea有比gitlab好用嗎

Bencrie02/03 18:51那是不同量級的東西

gmoz02/03 19:10感覺 one drive就夠了 還剛好買office 365

Vitaceae02/04 19:50哪那麼麻煩 資料夾歸檔用 script 批次指定 symlink 就

Vitaceae02/04 19:50好,symlink 用 git 建立歷史資訊

pttuser226602/04 23:09繼續用 GitHub, 檔案先分類,每個分類開一個 sub mod

pttuser226602/04 23:09ule , 如果未來單一 sub module 超過上限,可以考慮a

pttuser226602/04 23:09rchive 一份進雲端,然後移除久遠的記錄

shter02/05 00:14這種需求反而比較適合裝 CVS 或 SVN 來用

yoyo89012102/05 02:50兩台Windows可以用shared folder 建立bare repo

yoyo89012102/05 02:50設定好remote 路徑 push上去即可

MonyemLi02/05 09:30gitlib功能多很多,較耗資源。少人的gitea會較省資源。

cathychg02/05 20:11喔喔喔喔喔喔~找廠商。

abola92102/06 01:50binary 不能diff 的,想跟 code 一樣的管理思維

abola92102/06 01:52要看你打算付出多少成本才好給建議吧

abola92102/06 01:54每一個版本,等同是一份拷貝,加上備份,這用git跑越久

abola92102/06 01:57儲存成本越是巨大。真的有需要搞成這樣嗎?

Bencrie02/06 12:01也不是不能 diff,看檔案性質

ssd860505da02/08 09:52rsync incremental backup

dogz02/09 14:10AWS S3

Killercat02/11 04:55你這種就別git了,AWS S3開versioning照三餐丟檔案就好

jtrtsay02/12 01:04對啊 pdf是在git什麼?

cathychg02/15 17:40sa sd 要先出來啊…ER 圖 PM要切需求啊

cathychg02/15 17:41切完需求 才能模組做版控啊… 這?

cathychg02/21 21:16github 是一個大的repository...那做程式碼的庫存的 。

cathychg02/21 21:16。。。。搞甚麼爛東西啊!