Git:自动备份创建时的所有提交

时间:2016-01-30 23:28:11

标签: git version-control backup

我想要的东西。我希望它存在,如果不存在,我可能会创建它。我会形容它,如果你知道这样的话,请告诉我。如果没有,你有任何关于如何创建它的指示,我也会很感激。

我多年来一直在为我的项目使用Git,但直到现在我才开始在一家大公司工作,回收大约100名开发人员。当我独自工作并在小团队中工作时,我已经习惯了多次提交,暂存所有文件,并使用空提交消息(是的,这就是我滚动的方式。)我基本上使用了提交作为扩展保存操作;每当我输入一些非常重要的代码时,我都会将其全部提交并推送到非主分支。

现在我在一家大公司工作,我不能这样做,因为这对其他人来说会很麻烦。所以我仍然会做频繁的,没有文档的提交,但是当我完成后,我通过重新设置压缩所有这些,给他们一个很好的信息提交消息,并发送一个合并请求只是提交。我的所有临时提交都将在下一次垃圾收集运行中删除。

我不喜欢删除所有临时提交的方式。他们可能很丑,但我爱他们。有时候他们会编写一些代码然后删除,我不想丢失那些代码。也许我将来会再次需要它。

现在,我可以将所有这些提交放在私有分支上。但是创建和维护这样一组分支将是一件麻烦事。因为这意味着每个功能分支现在都需要另一个辅助分支,它将永远保持打开和未合并。呸。

我想要的是一个系统,可以保存在Git中提交的任何提交,并确保在可预见的将来它仍然可以访问。对我来说这很自然,这是自动的,无需任何行动。我想知道我可以回到我所做的任何承诺,即使它在壁球中丢失了。

这样的事情存在吗?是否有创建它的指示?

1 个答案:

答案 0 :(得分:1)

一个可能的想法是设置一个post-commit hook,它会将每个创建的提交推送到专用的仓库。

该推送将使用当前分支,或者,如果由于非快进推送(分支已被重新定位/重写)而拒绝推送到" current_branch_1" (_2,_3 ......)以保持之前推送的旧历史不变。

这样,你继续以正常的方式使用当前的repo(使用rebase / reset,一旦reflog被清除,最终可能会松开提交)。
然而,创建的每个提交仍然可以在"存档"回购。