Git如何清除本地缓存

2023-12-05 0 756
目录
  • Git清除本地缓存
  • windows 清除Git缓存
    • 清除缓存
    • Windows清理凭据缓存
    • 下面是具体问题的例子
  • 总结

    Git清除本地缓存

    工作中遇到了令我头痛的是Gitlab远程仓库中初始化仓库时,提交了.idea文件,导致我clone下来代码后,idea导入.idea文件改变,

    在以后的提交过程中都需要合并.idea文件中的xml文件,很麻烦,所以添加.gitignore文件输入.idea/意思是忽略掉.idea/文件下的所有文件。

    但是都是失败,因为第一次clone的时候,本地与远程的.idea文件已经建立了track,所以只有清除本地的localcache并且清除远程仓库中的.idea文件夹,执行命令如下:

    1、git rm -r –cached .idea/

    2、git add .

    3、git commit -m 'delete .idea'

    4、git push -u origin master -f //强制提交

    5、编写.gitignore文件,并把所有忽略提交的文件都写入提交

    windows 清除Git缓存

    Windows 域账号的密码,或者git账号的密码修改之后,Git-Bash 中不能clone,提示认证失败。原因是Windows缓存了git账号密码。

    先来看一下原理

    缓存有几种,可以通过命令git config credential.helper或者用户目录下的.gitconfig文件查看是哪种缓存方式。

    • 一般默认是使用wincerd,也就是windows凭证。配置命令#git config –global credential.helper wincerd
    • 还可以配置保存到 .git-credentials文件,配置命令#git config –global credential.helper store
    • 还可以直接配置账号密码

    清楚了缓存的方式,我们就可以有针对性的清除缓存。比如你的缓存方式是store,也就是保存到文件,那么你清除windows 凭据缓存就没有用了。其它同理。

    清除缓存

    第一种情况:

    当使用.git-credentials文件缓存方式时,当git clone认证失败一次,会自动清除掉对应的缓存。然后再执行git clone会提示输新的账号密码。如果不行可以手动到文件中删除。

    之后再执行clone或者pull时先提示输入用户名,然后提示输入密码,注意,这里的密码输入框有问题,要先把密码输入到一个文本然后再复制粘贴过去,否则会一直提示你认证失败

    第二种情况:

    当使用wincred方式时应该清理windows凭据缓存,方法如下

    Windows清理凭据缓存

    执行下面的命令

    这个操作受限于权限,在域管理的情况下你可能没有这个权限

    #git credential-manager uninstall

    这种情况还有一种清理方式

    同样,这个操作受限于权限,在域管理的情况下你可能没有这个权限

    控制面板\\用户帐户\\凭据管理器

    删除对应版本库的用户名密码

    如果使用的是wincred方式,又没有权限清理windows凭据缓存时怎么办呢?

    使用如下命令,清除git缓存设置

    #git config –system –unset credential.helper

    清除之后,每次执行git clone都会让你输入账号密码。注意这里有个大坑,输入密码的输入框有问题,当你密码比较长时可能导致密码混乱,验证失败。这种情况可以先将密码写到某个文件中,然后复制粘贴过来。

    第三种情况:

    将账号配置在git url中,执行命令后会提示要求输入密码,正常输入即可。

    git clone https://username@bitbucket.xxx.com/bitbucket/scm/repo.git

    下面是具体问题的例子

    jenkins配置git url 如下:

    https://bitbucket.xxx.com/bitbucket/scm/repo.git

    构建报错

    Git如何清除本地缓存

    在jenkins slave上直接执行git clone命令也一样的错误。而且不提示输入用户名密码,直接报账号被锁定。

    如果给git的url执行账号则没有问题,如下写法: https://username@bitbucket.xxx.com/bitbucket/scm/repo.git

    初步分析,是由于git缓存了账号信息,在不指定账号的时候使用默认的账号去执行pull操作。所以沿着清缓存的方向找到一篇文章(见截图):

    按照文章中的说法,执行了清缓存的命令,问题解决:

    #git credential-manager uninstall

    Git如何清除本地缓存

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持悠久资源网。

    您可能感兴趣的文章:

    • git丢弃本地修改的所有文件(新增、删除、修改)
    • Git基础学习之文件删除操作命令详解
    • 详解git的基本使用方法

    收藏 (0) 打赏

    感谢您的支持,我会继续努力的!

    打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
    点赞 (0)

    悠久资源 编程技巧 Git如何清除本地缓存 https://www.u-9.cn/biancheng/jiqiao/97839.html

    常见问题

    相关文章

    发表评论
    暂无评论
    官方客服团队

    为您解决烦忧 - 24小时在线 专业服务