iT邦幫忙

1

尋求git之外的 高效能本機檔案備份 & 版本管理推薦

  • 分享至 

  • xImage

我的電腦需要做開發資料夾的資料備份以及版本控制
我的開發目錄有 30G的程度 10萬以上的檔案 而且會持續增加
目前我已經有同時使用了幾種不同的檔案備份做多重備份 但是整體來說每個方案都有讓我不滿意的地方

  1. windows本身內建的"檔案歷程" 他會在另一個實體磁碟(包括隨身碟)上 以檔案型態儲存多個版本的檔案 用起來非常單純而且還原起來非常方便 直接檔案右鍵就可以選擇版本。 但是很大的問題是 M$自古以來那令人詬病的coding能力實在是太過低下 跟WINDOWS一樣 系統寫得非常不穩定 備份服務常常會在無預警的狀況下莫名損毀 導致定期備份失敗 而且是永久性失敗 無法再復原
  2. Google Drive 直接把整個目錄同步到GOOGLE上 雖然只有單一版本 好處是可以網路存取 但是說真的備份時效能實在是非常低劣 當同步時 整個電腦的CPU都會被卡死 這點讓我實在是很不滿
  3. 手動複製目錄 沒什麼好說的 就是拿個同步軟體(SyncToy) 手動複製整個目錄 要自己乖乖定期執行 備份效能不上不下的 普通慢

而 git 等等的主流版控軟體 我完全不考慮
事實上 git這個產品在軟體工程中 本身就是個極度荒謬的設計
就算是GIT本身有再多的安全管控機制
但這也是在一個開發專案中 當PM這個職缺已經完全"失能"根本沒在管理專案時 才會不得不使用git這種"無主"服務來補救整個專案開發
任何一個"稍微"正常的團隊 只要PM還有在管理專案時 都不應該允許有像git這種可以無預警自己擅自上傳資料的概念 而是要全部彙整給PM 由PM統一管理才對
那是open source這種完全無管理的志工形式 才會有git的需求

目前來說 單以功能部分來說 Windows內建的檔案歷程是我最滿意的
因為結構很單純 就算是發生OS毀損重灌 也可以直接單開資料夾把個別檔案取出 以日期編碼的檔名也很直觀
而備份效能也夠好 沒感覺過什麼性能卡頓 但就是那個無法預期的當機問題 令我非常困擾

我還是無法理解 為什麼好端端的備份系統 某天用一用就突然就會直接崩潰
備份機制不穩定 某方面來說也是讓人很煩躁的問題....

請問有沒有什麼簡單輕量的檔案備份方案? 不會對本機產生太大的效能負擔 若有提供版控則更好

看更多先前的討論...收起先前的討論...
推薦方案:Restic + 本地/雲端儲存
針對使用者的需求(簡單、輕量、效能負擔低、具備版本控制),我推薦使用 Restic,這是一個開源的備份工具,特別適合開發者使用,且能在Windows、Linux和macOS上運行。

為什麼選擇Restic?

輕量高效:Restic是一款命令列工具,資源佔用極低,不會像Google Drive一樣拖慢系統效能。
版本控制:Restic支援快照(snapshot)功能,每次備份都會生成一個版本,您可以輕鬆還原到特定時間點的檔案,類似Windows的「檔案歷程」。
穩定性:相較於Windows內建工具,Restic是一個成熟的開源專案,穩定性高,且備份資料以加密形式儲存,安全性強。
靈活的儲存選項:Restic支援多種後端儲存,包括本地磁碟、NAS、SFTP伺服器,以及雲端服務(如AWS S3、Backblaze B2、Google Cloud Storage等)。您可以選擇將備份儲存在本地硬碟或雲端,兼顧便利性與安全性。
增量備份:Restic僅備份變更的檔案,節省時間與儲存空間。
NAS+NAS出的同步工具+版控
owan iT邦高手 1 級 ‧ 2025-09-05 09:03:14 檢舉
git無主是沒做好權限管理
這部分你去問GPT都有答案
如果版控是 PM 做 這反而很可怕 且應該很沒效率
另外開發目錄有30G,10萬個 file
那就要先 review 裡面到底有什麼
是否該做調整 再挑選備份策略
備份策略不只是 A 或 B
可以是 A+B
根據需求組合工具可能更符合你的需求
git非主流? 你是寫顛倒了吧.
現在程式碼管控哪個不是使用git?
而且看你的描述就明白你對git的認知有問題,
git本身並不包含帳號管控,git核心目的就是版本管控機制, 你說的問題現在有各種產品來提供,譬如gitlab,github,微軟自己的版本管控Server現在也是改用git.
另外你說的PM問題,那跟git無關,而是項目的流程管控機制問題, 你去搜尋下關鍵字
git flow就能解答你的疑慮.
你說的雲盤版本機制跟git是兩回事
所以我感覺你要的是備份軟體而不是版本管控軟體.
如果google driver或是one driver透過internet速度慢,你可以考慮買個群暉NAS來處理,群暉NAS本身的檔案同步系統就像這些雲盤一樣也有版本機制
另外再補充下,像是gitlab server本身開源,如果不想用gitlab本身的雲服務,也能自己下載自建server
Jasper iT邦新手 5 級 ‧ 2025-09-05 11:01:30 檢舉
為什麼看到這個需求腦海中第一選擇是 nextcloud,然後走內網要多快有多快😆
Cto iT邦新手 1 級 ‧ 2025-09-05 11:28:37 檢舉
蝦?第一次聽到git還要這樣扯到PM的,哪個團隊求避雷
然後再補充一下
我本質上是單人團隊 我自己就是全端所有的開發 現行所有開發都是以我為中心
所謂的版控自然也是以我為中心
除了有辦公室額外的NAS+GIT外 我自己就是完整最新的主本
這點在方向性很重要 主本是在我的電腦上 而不是GIT
然後 因為我會移動工作 檔案也不開放到公雲 所以雲端GIT等等的 自然是不考慮

因為 我就是主本 主導權在我的筆電上 所以傳統上GIT等等 主本在天上的繁複的板控 對我來說是疊床架屋
我的想像情境是 當有OS損毀 更換電腦時 抓著硬碟/隨身碟就可以直接走的概念
30G/10萬 是10多年來的眾多累積開發 包含數十個專案
而且是已經RAR刪減過的版本 完全的冷資料都已經移除了
若是未刪減的資料 輕鬆的就會超過80G/50萬 連備份都很痛苦

這還不提已經有重複備份的冗餘資料困擾
alien663 iT邦研究生 2 級 ‧ 2025-09-05 13:28:53 檢舉
方便問一下在哪高就嗎?
我一定.....要避開
owan iT邦高手 1 級 ‧ 2025-09-05 17:56:46 檢舉
我覺得.. 因為你一直是單人開發者
所以開發流程/經驗 可能跟別人非常不同
大家都覺得你的觀念很"特別"
我建議 找個人先討論你的觀念吧
不然你開發經驗 10 年就這樣....
繼續下去還得了?
真要講 我的開發模式確實是跟一般人相當不同
我是純血的N++開發者
現代化IDE 已經快20年沒用過了
Git 不是很好了嗎?
DennisLu iT邦好手 1 級 ‧ 2025-09-05 21:20:08 檢舉
restic
pinzong iT邦新手 5 級 ‧ 2025-09-07 07:07:56 檢舉
超好笑,看到大家都在噴我就放心了
foxiris iT邦新手 4 級 ‧ 2025-09-08 03:50:24 檢舉
其實你需要的就是git,跟是不是團隊沒關係,一個人也是需要git的,10年30G的資料根本不多。
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
Marco_Yang
iT邦新手 5 級 ‧ 2025-09-05 07:17:24

面臨的主要問題是:

  1. 備份需求:需要對一個大型開發目錄(30GB,超過10萬檔案)進行備份,且檔案數量會持續增加。
  2. 版本控制需求:希望有版本控制功能,以便追蹤檔案變更。
  3. 效能問題:現有方案(如Google Drive)在同步時對系統效能影響過大。
  4. 穩定性問題:Windows內建的「檔案歷程」功能雖然直觀,但穩定性差,容易無預警損毀。
  5. 對Git的排斥:使用者對Git等主流版本控制工具持負面看法,認為其設計不適合有專案管理的團隊。

1. 對Git的誤解

首先,我想稍微澄清一下關於Git的觀點。雖然這位使用者認為Git不適合有專案管理的團隊,但實際上Git作為版本控制工具,並不必然意味著「無主」或「無管理」。在一個有良好專案管理的團隊中,Git可以透過分支策略(如Git Flow)、權限設置(例如在GitLab或GitHub上限制推送權限)以及Pull Request/Merge Request機制,確保所有變更都經過審核與統一管理。PM可以扮演最終審核者的角色,而開發者無法擅自上傳未經批准的內容。

2. 推薦方案:Restic + 本地/雲端儲存

針對使用者的需求(簡單、輕量、效能負擔低、具備版本控制),我推薦使用 Restic,這是一個開源的備份工具,特別適合開發者使用,且能在Windows、Linux和macOS上運行。

  • 為什麼選擇Restic?

    • 輕量高效:Restic是一款命令列工具,資源佔用極低,不會像Google Drive一樣拖慢系統效能。
    • 版本控制:Restic支援快照(snapshot)功能,每次備份都會生成一個版本,您可以輕鬆還原到特定時間點的檔案,類似Windows的「檔案歷程」。
    • 穩定性:相較於Windows內建工具,Restic是一個成熟的開源專案,穩定性高,且備份資料以加密形式儲存,安全性強。
    • 靈活的儲存選項:Restic支援多種後端儲存,包括本地磁碟、NAS、SFTP伺服器,以及雲端服務(如AWS S3、Backblaze B2、Google Cloud Storage等)。您可以選擇將備份儲存在本地硬碟或雲端,兼顧便利性與安全性。
    • 增量備份:Restic僅備份變更的檔案,節省時間與儲存空間。
  • 如何開始使用Restic?

    1. 下載並安裝Restic(官方網站:https://restic.net/)。
    2. 初始化備份儲存庫(repository),可以是本地磁碟或雲端儲存。
      restic init --repo /path/to/backup
      
    3. 設定備份任務,指定開發目錄。
      restic backup /path/to/dev_folder --repo /path/to/backup
      
    4. 設定自動化備份,例如使用Windows的「工作排程器」或Linux的cron來定期執行備份指令。
    5. 需要還原時,使用快照ID查看歷史版本並還原特定檔案。
      restic snapshots --repo /path/to/backup
      restic restore <snapshot_id> --target /path/to/restore --repo /path/to/backup
      
  • 注意事項

    • 建議搭配一個可靠的硬碟或NAS作為主要備份目標,並可選擇性地將備份同步到雲端。
    • 定期檢查備份完整性,使用restic check指令。

3. 替代方案:FreeFileSync + 版本控制插件

如果您不希望使用命令列工具,可以考慮 FreeFileSync,這是一個開源的檔案同步工具,支援Windows、Linux和macOS。

  • 優點

    • 圖形化介面:操作簡單,適合不習慣命令列的使用者。
    • 高效同步:僅同步變更的檔案,效能比Google Drive好很多。
    • 版本控制:FreeFileSync支援版本控制功能,可以設定保留多個歷史版本。
    • 多重備份:可以設定多個目標磁碟,實現多重備份。
  • 設定建議

    1. 下載並安裝FreeFileSync(官方網站:https://freefilesync.org/)。
    2. 設定同步任務,將開發目錄同步到另一個硬碟或NAS。
    3. 在「版本控制」選項中,啟用歷史版本保存,並設定保留版本數量或時間範圍。
    4. 使用Windows「工作排程器」或腳本自動化同步任務。

4. 效能與穩定性考量

  • 避免效能問題:Restic和FreeFileSync都支援增量備份與同步,僅處理變更檔案,因此對系統的負擔遠低於Google Drive的全盤同步。
  • 穩定性:這兩款工具都是開源軟體,經過大量使用者驗證,穩定性遠高於Windows內建的「檔案歷程」。此外,備份資料以檔案形式儲存,即使工具本身損壞,資料仍可透過其他方式存取。

5. 針對大型目錄的建議

對於30GB、10萬檔案以上的目錄,建議:

  • 分割備份:將目錄按專案或類型分割成多個子目錄,設定不同的備份頻率。例如,核心程式碼每日備份,測試資料每週備份。
  • 排除不必要的檔案:使用Restic或FreeFileSync的過濾功能,排除臨時檔案、快取檔案或不需要備份的資料,減少備份負擔。
  • 硬體支援:投資一個高速的NAS或外接硬碟作為主要備份目標,提升備份速度。
咖啡偶 iT邦新手 5 級 ‧ 2025-09-05 07:35:59 檢舉

我也推薦 restic 。
題外話,Marco_Yang 可否挺身而出,教導文案/文章寫作,看你回文很是舒服。

再補充一下
這是我自己私人筆電需要的備份 辦公室內是有辦公室自己的GIT
辦公室內有NAS主機 目前用來備份伺服器
但原則上我是希望能做到不依賴網路的離線備份
目前我是用常駐型的迷你隨身碟來做複本

另外 30G/10萬這不是單一個專案 而是我個人10多年來的開發履歷 而且 半數都還在運作中
並且 這數量已經是"壓縮"過的版本 不再使用的冷檔案 幾乎都已經RAR 若是未經刪減的話至少是 80G/50萬以上

Restic和FreeFileSync 這兩個我會試試看

不利用網路的備份。就只能使用外部設備備份了,你還好有說到隨身碟。那就只能用同步型的備份。
因為待命監看式的備份一定不適合外接設備上。
當然,有些軟體會去監測您的外接設備再進行備份。
但這樣的備份大多數耗時很久。

而一般來說,如果是開發式的文件程式。主流還是GIT。
能當備份又有歷程還能版控

我個人目前開發的東西已超過你的容量及數量。
使用的就是 GIT 控管。放到 AWS 的雲GIT庫上(AWS現在已經不在提供了,只留下老客戶還能使用),現在完全無壓力。我也不擔心程式消失。
而公司的開發機也有GIT庫。
也就是我同時存在兩個地方,一個雲端上,一個在地端。
但一般正常開發操作GIT。完全無感。管理起來超級方便。
跟工程師合作還能 code review 。
不合格的程式碼,還能直接退件處理。
為何會覺得GIT難用???是不會用還是難用啊。

0
sam0407
iT邦大師 1 級 ‧ 2025-09-05 09:26:57

如果您的需求只是個人或小團隊的版控+備份,對Git的功能也不熟,的確是可能會覺得不好用!
我建議您可以評估一下SVN,這是我的團隊以前在用的版控工具,真的簡單好用。

看更多先前的回應...收起先前的回應...

我確實是個人用備份 NB就是我的資料主本 太複雜的流程對我來說是疊床架屋
而且我期望是使用隨身碟等離線運作

GJ iT邦好手 1 級 ‧ 2025-09-05 14:04:03 檢舉

建議您也不要太依賴隨身碟,雲端至少也要有個版本,隨身碟末明讀不到也時有所聞

有阿 我幾乎已經是多重321備份了 光隨身碟 外接SSD 就不知道幾個版本 弄到都有點亂了
所以很煩

sam0407 iT邦大師 1 級 ‧ 2025-09-07 11:33:14 檢舉

有阿 我幾乎已經是多重321備份了 光隨身碟 外接SSD 就不知道幾個版本 弄到都有點亂了
所以很煩

備份要輕鬆無壓力才會落實執行,建議您買台NAS,每天定時排程將PC資料備份到NAS,再透過NAS功能每天上傳雲端空間。

0
souda
iT邦高手 1 級 ‧ 2025-09-07 14:11:35

看了你的文 我還是沒看懂你要的重點是甚麼?
第一 何謂高效能?
第二 如何得知開發最後版本和發行版本?
第三 發行流程如何管控?
綜上問題,我覺得你更應該思考的事公司的開發管理和發行管理以及是否有專人控管?
建議你可以參考SDLC V-Model 並加入cybersecurity 變成SSDLC.

1

抱歉,我只想噴
「任何一個"稍微"正常的團隊 只要PM還有在管理專案時 都不應該允許有像git這種可以無預警自己擅自上傳資料的概念 而是要全部彙整給PM 由PM統一管理才對」

「無預警自己擅自上傳資料的概念」??
你真的知道什麼是GIT嘛??你知道PR機制嘛?你知道GIT FLOW嘛?
你知道工程師上傳的程式碼,GIT可以做到拒絕更新嘛?
更好的管理機制還能控制主分支是不能隨意上傳的。
以上我相信你一定不知道。

但我至少是看到了你GIT使用上的問題了,因為下面這句話。
「那是open source這種完全無管理的志工形式 才會有git的需求」
GIT是需要管理的,也要會管理。管理起來也不是很困難。
但至少不可能無腦管理。

我相信你都不知道。要不然不會說出這樣荒唐的話出來。
這只代表你們的團隊,完全不正常。連「"稍微"正常」的程度都沒有。
我推測你是一條龍GIT。

最後,其實我沒辦法給你任何你的問題的建議。
因為你並沒真正的使用工具。或是想學如何使用工具。
或是你只想無腦使用工具。

任何一種工具,要學會如何使用。
如備份工具,也有所謂的差異備份。就是只會將更新的資料備份。
也能做到完整備份。
如想要求速度,也能做到鏡像備份的處理。
有非常多種選擇。每一種都能達到您想要的需求。
但你要學會如何去用。

正常來說,非程式使用30G容量,1萬多個檔案。我也不建議您使用GIT。
其它工具有其它網友說明了,我就不在重覆。

我要發表回答

立即登入回答