首页 > 解决方案 > 如何长时间设置 git cache --timeout?

问题描述

在这里Git push 需要用户名和密码我读到了在命令行中运行 git 命令时如何从 github 推送/拉取不输入登录名/密码。

我发现了下一个:

git config --global credential.helper 'cache --timeout 7200'

启用凭证缓存后,将缓存 7200 秒(2 小时)。

我认为 2 小时太小,并尝试使用命令设置缓存 200 小时:

git config --global credential.helper 'cache --timeout 7200000'

我的本地服务器和远程服务器上都有 Ubuntu 18。

但是当我第二天运行 github 时(我想 10-12 个小时过去了)它没有用。

此缓存选项是否有一些小时限制或有什么问题?

谢谢!

标签: gitgithub

解决方案


根据您的评论,缓存似乎在您的服务器上正常工作(很少重新启动),但不是您的笔记本电脑(经常重新启动)。

git-credential-cache的文档是这样说的:

此命令将凭据缓存在内存中以供将来的 Git 程序使用。存储的凭据从不接触磁盘,并且在可配置的超时后被遗忘。

由于凭据仅存储在内存中,因此每次重新启动时都会丢失它们是有道理的。鉴于此,我可以想到一些解决方法:

  1. 请改用git-credential-store,这会将您的凭据永久保存到磁盘。请注意,这将使它们完全未加密,因此根据您的安全需求,这可能无法正常工作。
  2. 继续使用缓存,但不要关闭/重新启动笔记本电脑,而是尝试使用挂起或休眠模式。这将保持机器的当前状态,并防止每次使用笔记本电脑时清除内存,因此凭据应该一直存在,直到达到超时。

推荐阅读