git保持多久

假设我在我的本地存储库中根据master创建了一个名为feature1的分支,并添加了一个或两个提交。 然后我切换回master并决定feature1不会创建并删除分支。

我假设分支基本上是一个指向特定提交对象的“指针”。

现在谈谈实际的问题。

  • 上面的假设是否正确,可能是一些简化的意义?
  • 提交对象在文件系统上还存在多长时间(以便我稍后可以执行git checkout SHA1-HERE )? 是否有某种“保留策略”会删除不属于任何现有分支历史记录或标记的提交(不确定在此使用的术语是否正确......)?
  • 上面的任何依赖于git服务器的实现(gitosis,github等)?
  • 如果对象被永远保留并且在一段时间/事件之后没有自动清理,是否意味着将git的receive.denyNonFastForwards设置为防止数据丢失的措施是没有意义的?
  • 这个问题的原因:我目前正在开发一个项目,该项目的receive.denyNonFastForwards执行的基础是避免丢失任何已完成的工作(我怀疑receive.denyDeletes也被强制执行)。 我想确保没有更好的方法来保存有承诺的未拆除的工作,并且能够清理旧的分支以避免混乱。


    默认的90天:

    gc.reflogexpire
    gc.<pattern>.reflogexpire
    

    git reflog expire会删除比此时更早的reflog条目; 默认为90天。 在中间,使用“ <pattern> ”(例如“ refs/stash ”),该设置仅适用于匹配<pattern>的ref。

    所以:

  • 90天
  • 否(实际上你可以联系GitHub支持来询问他们并恢复已删除的推送分支)
  • “保留已提交但未合并的”:您可以将其推送到专门的开发分支或专门的上游回购(仅供您使用)
  • 链接地址: http://www.djcxy.com/p/82943.html

    上一篇: How long does git keep out

    下一篇: How to address multiple API end points using Retrofit?