版本和备份git存储库

doublegit的Python项目详细描述


这是什么?

这是一个小工具,它可以git fetch然后在sqlite3数据库中记录所有ref更新。它还创建ref以确保没有commit被垃圾收集。

为什么?

如果将远程存储库强制推送到,则某些提交可能会丢失。git日志中也没有证据表明发生了这种破坏性的变化。也可以创建一个提交,但推送的时间要晚得多,或者可以重命名分支;这些都不会出现在git日志中。

这个工具将允许您清楚地了解发生了什么,永远不会丢失提交,并在特定时间点快速获取存储库的快照。因此,它比镜像更适合备份。

重新登录不都能做到吗?

这确实与git的内置reflog类似,只是reflog不知道分支重命名,分支的reflog随分支一起被删除。

它也是本地的,因此您将无法读取远程存储库的reflog。

如何使用

首先,创建一个裸回购:

$ mkdir my-repo-backup && cd my-repo-backup
$ git init --bare

设置一个(或多个)遥控器以从中提取:

$ git remote add origin https://github.com/remram44/doublegit.git

然后只需偶尔运行doublegit即可:

$ python3 doublegit.py /path/to/my-repo-backup

然后,您可以查询gitarchive.sqlite3以获取分支更新或给定时间点的分支位置。

下一步?

我认为如果这个工具也能记录github/gitlab/…api事件,比如问题/合并请求/评论,那就太酷了。

它还可以自动备份您所有的星型回购协议。

这也不支持标签。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java IntelliJ找不到依赖项选项卡   java向字符串数组string[]添加元素并在Junit中测试结果   如何在eclipse中获取活动java项目的名称   如何使用java在mysql中插入时间   java ArrayList更新了插入一行,但Jtable仍然没有刷新   如何在JavaSwing中命名坐标(点)   java Matcher/模式不打印   java错误地设置了arraylist   使用UsernamePasswordCredential提供程序的java列表Azure AD   java在HTTP请求中设置UTC时间   未加载事件:jquery完整日历Java集成   java Maven插件依赖项无法从内部repo解析依赖项   Maven更新重置Java版本   java如何向中添加图片。带有Apache POI XWPF的docx,但不指定其大小   Java最大函数递归