这是一台全新安装了Git的新机器。
> git --version
git version 2.19.1.windows.1
我使用https克隆了仓库。每当我尝试与远程通话时,我都会得到这个。
> git pull
fatal: NullReferenceException encountered.
Object reference not set to an instance of an object.
fatal: NullReferenceException encountered.
Object reference not set to an instance of an object.
我尝试再次卸载并安装git。我也将相同的存储库克隆到磁盘上的其他目录,但这无济于事。
当我进入BitBucket的Web UI时,启用了2FA。我不知道这是否与我的问题有关。
答案 0 :(得分:57)
其原因是,需要更新随Git 2.19.1一起分发的Git凭据管理器(GCM)。
发布的Git 2.19.1说:
Git Credential Manager v1.18.0随附。
当我们查看GCM 1.18.1(下一版本)发行说明时:
修复未填充参数或contentType时的Null引用异常
(2018年11月23日编辑):正如@pgsandstrom在评论中所说,Git发布了一个新版本,其中还包含更新的GCM。您可以在这里下载:Git Releases。
(Rest是2018年11月23日之前的旧版本))
在Git发布具有更新的GCM的新版本之前,临时修补程序是自己直接安装新版本的Git Credential Manager。
因此,请从here下载最新版本并安装它,它应该可以解决您的问题。
请注意,我不清楚这是Git引入的错误(即,它无法填充参数或contentType)还是GCM引入的错误。我所知道的是,Git尚未发布可解决此问题的新版本,但GCM已发布。
答案 1 :(得分:1)
我正在运行通过git version 2.19.1.windows.1
安装的最新Scoop
。
我们已经将存储库从GitLab迁移到BitBucket,然后我得到了相同的消息:
致命:遇到NullReferenceException。未设置对象引用 到对象的实例。
解决此问题的是此命令:
git config --global credential.helper wincred
答案 2 :(得分:0)
原因之一可能是git(和其他类似版本控制系统)的密码更改。
我可以推荐一些解决方案
如@mpro所述,您将要求使用存储在Windows凭据管理器中的凭据。您想在那里相应地更新密码。
达到这一点的方法是(在WIN 10中):开始->控制面板->控制面板->凭据管理器
相反,您可以使用以下命令要求git使用其缓存中的凭据
git config --global credential.helper cache
这样做,git将在与远程源的每次交互中提示输入用户名和密码。
希望这会有所帮助!