Git作为没有版本控制的回购?

时间:2012-12-01 22:39:13

标签: git backup 7zip

好的,这是一个奇怪的!

我有一个漂亮的小32gig拇指驱动器,我保存在我的钱包里,其中包含我需要在计算机上生活的所有最新文件。它包含我的所有BASH命令参考,从rubiks立方体算法到用于参考和数字书籍的PDF以及我编写过的所有软件。朋友突然需要修理电脑吗?砰!我用左侧口袋里的软件盖了它。甜蜜啊?

我想跟踪我对repo所做的每一项更改,并对其进行持续备份。 Git对此非常有效,除了它复制了我的所有文件并大大增加了repo的大小!这不是一个大问题,但它很烦人。我知道Git用于软件回购,而且我对它很酷(多数民众赞成我主要使用它)

所以我在思考,我能否以某种方式作为git nub使用git来记录我对repo所做的更改但不保留每个实际更改的运行副本但只保留HEAD版本?因此,当我执行推/拉时,将使用我的所有注释备份repo,但只有闪存驱动器中活动目录树中的内容才会保存在Git存储库中?所以不会有重复的二进制条目,如果我删除了一个.exe文件,它会记录它,但永远摆脱该文件?

也许在不使用git的情况下有更好的方法吗?例如,我使用7ZIP手动压缩和进行备份,然后将它们保存到云服务器以实现备份冗余。这是时间密集的,比简单的更烦人:

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

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:3)

git-annex做你想要的。它使用git-plumbing进行版本控制,但索引和存储库中没有副本。

答案 1 :(得分:1)

如果我正确理解你,你需要记录被触摸的文件,何时以及人们对改变内容的书面描述......但你不想要实际的改变,只需要最新的。

手动编写更改文件(或者编写一个小脚本来获取时间戳和更改文件)并使用rsync保持文件同步。简单。

但实际上你真的需要一个完整的更改存储库(如果你现在不想要它,你将需要它从现在起六个月),而不是你的闪存驱动器。我不确定你为什么要记录你在闪存驱动器上所做的更改,所以我会放弃这个要求。我建议的是在具有完整git存储库和完整备份的真实磁盘上进行开发。然后将文件部署到闪存驱动器。有几种方法可以做到这一点。

一个是使用rsync。它非常擅长并且很容易获得。

或者使用git clone --depth 0 <repo>在闪存驱动器上制作浅色克隆。这样你仍然可以拉,差和提交。您将无法获得完整的日志,但我不明白为什么您需要在闪存驱动器上使用它。您无法从此存储库推送,但仍可以执行diff以查看本地更改并创建修补程序文件。无论如何,你不应该在你的闪存驱动器上进行开发。

答案 2 :(得分:0)

听起来你想要一个集中的源代码控制系统,比如Subversion。 Git的全部意义是在本地拥有一个存储库。使用Subversion,你可以拥有一个中央副本,只需在你的拇指驱动器上携带一个工作副本。

中央副本仍然具有完整的历史记录,但我认为从Subversion删除旧提交可能比从Git删除旧提交更容易。