2012-12-01 25 views
0

好吧,這是一個奇怪的!Git作爲沒有版本控制的回購?

我有這個漂亮的小32gig thumbdrive,我保留在我的錢包裏,包含所有最新的每一個文件,我需要去關於計算機上的生活。它包含我所有的BASH命令參考,從rubiks立方體算法到我用於參考和數字書籍以及我寫過的所有軟件的PDF文檔。朋友需要突然間修好他們的電腦嗎?砰!我在左口袋裏找到了軟件。甜心吧?

那麼我想跟蹤我對回購的每一個變化以及對它的不斷備份。 Git對此非常適用,除了它複製了我所有的文件並大幅度擴大了回購的規模!這不是一個很大的問題,但它很煩人。我知道Git用於軟件回購,我很酷(多數民衆贊成我主要用它反正)

所以我想,我可以作爲一個混帳nub使用git來記錄我對回購,但不保留每個實際更改的運行副本,但只保留HEAD版本?因此,當我執行推/拉回購時,將備份所有我的評論,但閃存驅動器中的活動目錄樹中的內容將保存在Git存儲庫中?所以不會有重複的二進制條目,如果我刪除了一個.exe文件它會記錄它,但永遠擺脫文件?

也許有沒有更好的方式做到這一點,而不使用git?例如,我使用7ZIP手動進行壓縮和備份,然後將它們保存到雲服務器以備份冗餘。這是時間密集型的,比簡單更令人討厭:

git add . 
git commit -m "changes" 
(git gc) 
git push 

任何幫助將不勝感激!

回答

0

聽起來像你想要一個集中的源代碼管理系統,就像Subversion。 Git的全部要點是本地存儲庫。有了Subversion,你將擁有一箇中央副本,並且只在你的拇指驅動器上運行一個工作副本。

中央副本仍然會有完整的歷史記錄,但我認爲從Subversion中移除舊的提交可能比從Git更容易。

3

git-annex做你想要的。它使用git-plumbing進行版本控制,但沒有索引和存儲庫中的副本。

+0

Awww,看起來git-annex沒有windows build! – Parad0x13

1

如果我正確地理解了你,你需要記錄什麼文件被觸動,什麼時候什麼時候被人類書面描述以及什麼被改變......但是你不想要實際的改變,只是最新的。

手動編寫更改文件(或者寫一點腳本來獲取時間戳和更改文件)並使用rsync保持文件同步。簡單。

但是你真的想要一個完整的變更庫(如果你現在不需要它,你將需要它六個月後),而不是你的閃存驅動器。我不確定爲什麼你需要記錄你在閃存驅動器上所做的更改,所以我會放棄這個要求。相反,我會建議您在真正的磁盤上使用完整的git存儲庫和完整備份進行開發。然後將文件部署到您的閃存驅動器。有幾種方法可以做到這一點。

一種是使用rsync。它非常擅長並且容易獲得。

或者用git clone --depth 0 <repo>在你的閃存驅動器上做一個淺度克隆。這樣你仍然可以拉,差和提交。你不會有完整的日誌,但我不明白你爲什麼需要它在你的閃存驅動器上。您無法從此存儲庫中進行推送,但仍可以執行差異查看本地更改並創建補丁文件。無論如何,你不應該在你的閃存驅動器上開發。

+0

這些是一些非常好的輸入。也許我應該重新思考我管理這個文件系統的方式。我原本希望閃存驅動器成爲最新的一切,所以我可以隨時更新驅動器上的任何內容並考慮其內容,然後我會去其他地方備份驅動器。我真的想在我的Mac,PC,被黑客入侵的平板電腦等上運行文件系統的副本......但是閃存驅動器上的任何內容都將被視爲最終的 – Parad0x13