Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法提取,因为使用VS2015/Git存在未提交的更改_Git_Visual Studio_Visual Studio 2015_Dev Null - Fatal编程技术网

无法提取,因为使用VS2015/Git存在未提交的更改

无法提取,因为使用VS2015/Git存在未提交的更改,git,visual-studio,visual-studio-2015,dev-null,Git,Visual Studio,Visual Studio 2015,Dev Null,想象一下以下场景: 经理创建了一个团队项目,并决定使用(最新)git作为项目的VCS。开发团队将使用(最新)VS2015(企业)IDE。 Manager创建了一个名为“master”的新(源)分支,然后将2个文件提交并推送到该分支 项目文件层次结构: Project (Root) Folder | notes.txt \ readme.md 由“Jym”和“Bennie”组成的开发团队已经撤出了origin/master branch(他们都在本地/master branc

想象一下以下场景:

经理创建了一个团队项目,并决定使用(最新)git作为项目的VCS。开发团队将使用(最新)VS2015(企业)IDE。 Manager创建了一个名为“master”的新(源)分支,然后将2个文件提交并推送到该分支

项目文件层次结构:

  Project (Root) Folder
    | notes.txt
    \ readme.md
由“Jym”和“Bennie”组成的开发团队已经撤出了origin/master branch(他们都在本地/master branch工作)。 Jym已经提交并推送了对“notes.txt”文件的第一个更改(直接提交给master branch)。 Bennie创建了一个名为“todos.txt”的新文件,并对“notes.txt”文件进行了一些更改。 现在,当Bennie尝试同步/拉取更改(Jym之前所做的更改)时,同步窗口中将显示以下消息:

无法提取,因为存在未提交的更改。在再次拉取之前提交或撤消更改。有关详细信息,请参见输出窗口

为了让球队的情况变得更糟,本尼也经历了同样的情况。这意味着Bennie实际上无法运行任何git命令(但是,除了“撤消”之外的所有功能似乎都可以与Visual Studio git/TFS提供程序配合使用,他发现这非常奇怪)。
也正因为如此,这个问题不可能重复

如何解决Bennie遇到的问题(来自上面描述的场景)(当然只使用Visual Studio)

如果我能提供更多细节,请发表评论

编辑1(输出自for):
第一步的结果:答案中的“nul”不应该是“nil”吗

第二步(设备管理器)的结果: 选中查看->“显示隐藏设备”选项后,任何设备的名称中都没有带有小“警告”图标(未知/无法识别的设备)或“空”的设备。
此外,显然“非即插即用驱动程序”类型甚至没有列出(当然,当选择View->“Devices by type”时)

第三步的结果:
%SystemRoot%\system32\drivers\null.sys
文件已存在,并已从磁盘中删除(从Windows 10复制并粘贴到null.sys文件中)。
更多详细信息:右键单击任何sys文件后,上下文菜单中没有“安装”或“卸载”选项,默认操作似乎是“打开…”(粗体)

第四步的结果:尝试合并失败。重新分配了
HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Enum\Root
注册表项的所有者,并设置了相应的权限。
更新注册表项权限后,文件已成功合并到注册表中。
重新启动计算机。
等待最后的答案错误仍在显示中

编辑2(测试路径环境变量):
仍然会发生相同的错误(即使以管理员身份打开git-cmd.exe或git-bash.exe)

编辑3(电源选项,不使用“允许计算机进入远离模式”设置):
.

编辑4
在Bennie将他的机器从Windows8.1升级到10之后,这个问题就解决了。现在,我们可以简单地断定操作系统已损坏。

每当GUI(此处为VS与Git集成)退出标称路径(此处不可能立即进行Git推送)时,请返回Git命令行界面

在您的情况下,Bernie需要一个a
git pull--rebase

打开git bash,然后(像Bernie那样)做

注意,
git pull--rebase
可能很快就会为VisualStudio提供支持(如下所示):

不过还没有官方消息


关于“
无法打开/dev/null(或dup失败)
”,请查看“”是否有帮助(出现问题)

但是,如果错误仍然存在(如中),重新安装Windows仍然是摆脱这种困境的最可靠的方法


正如编辑4中提到的,从win8升级到win10足以恢复设备并解决问题。

您能否提供有关Bennie是否已提交其(她的?)更改的更多详细信息?@Andreypsohin Bennie get“无法提取,因为存在未提交的更改。在再次拉取之前提交或撤消更改。有关详细信息,请参阅输出窗口。“因此,他在origin/master之后进行了一次本地更改,但无法使用git(或撤消功能-原因未知)。他尝试重新安装git,git for Windows(GitHub客户端),验证git目录是否在PATH环境变量中设置,等等。但git总是以此类/类似的错误消息作出响应:”致命:打开/dev/null或dup失败:没有这样的文件或目录“.他还试着用SourceTree,乌龟。。。什么都不起作用。我的意思是,如果更改确实未提交,并且通过
git status
被视为挂起的更改,Bennie可能会得到相同的错误。据我所知,这些更改是在尝试执行
git pull
命令之前提交到master中的?@andreypesohin是的,当然还有未提交的更改。不,Bennie在本地所做的更改既不提交也不推送(他坚持自己的更改,与origin/master相比,延迟了1次提交)。VisualStudio现在也开始困扰他,比如如果他创建了一个新文件,它就不会被跟踪(添加到包含的更改中,如果他试图永久删除一个文件,就像他完全不同步一样,同样适用)。@Andreypsoshin升级是最新的合适选择;未重新安装(格式化/干净安装)。两者之间有区别;)这是行不通的,因为“这意味着Bennie实际上无法运行任何git命令”。再读一遍这个问题?@OmegaExtern我已经读过了,我相信Bernie可以在shell中运行git命令。只要解压缩Bernie想要的任何地方,Bennie就可以运行Windows8.1(x86/32位)。我给他发了32位便携式拉链Git,他
cd /path/to/repo
git status # make sure everything is committed
git pull --rebase
git status # you see notes.txt as being in conflict
# edit notes.txt and resolve the conflict by removing merge markers
git add .
git rebase --continue

git push