无法拉,因为使用VS2015 / Git

时间:2016-01-31 07:52:32

标签: git visual-studio visual-studio-2015 dev-null

想象一下以下场景:

  

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

项目文件层次结构:

  Project (Root) Folder
    | notes.txt
    \ readme.md

由“Jym”和“Bennie”组成的开发团队已经取消了origin / master分支(他们都在本地/主分支上工作)。 Jym承诺和将第一个更改推送到“notes.txt”文件(直接转到master分支)。 Bennie创建了一个名为“todos.txt”的新文件,并且还对“notes.txt”文件进行了一些更改。 现在,当Bennie尝试同步/拉出更改(由Jym早期做出)时,同步窗口中会显示以下消息:

  

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

为了让团队变得更糟糕,Bennie也正在经历same issue that was opened in late December last year。这意味着Bennie实际上无法运行任何git命令(但是,所有功能,但“撤消”似乎与Visual Studio Git / TFS提供程序一起使用 - 他发现这很奇怪)。
也正因为如此,这个问题不是(可能)重复another question

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

如果我可以提供更多详细信息,请发表评论。

编辑1 suggested answersolving "null" device输出):
第一步的结果:这个答案中不是一个错字,不应该“nul”为“nil”吗? See screenshot

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

第三步%SystemRoot%\system32\drivers\null.sys文件的结果已存在并已从磁盘中删除(从Windows 10复制并粘贴到null.sys文件中)。
更多细节:一旦右键单击任何这些sys文件,上下文菜单中没有“Install”或“Uninstall”选项,默认操作似乎是“Open with ...”(以粗体显示)。

第四步的结果:尝试合并null.reg失败。重新分配HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root注册表项的所有者,也设置了适当的权限 更新注册表密钥权限后,null.reg文件已成功合并到注册表中 重新启动计算机 等待最终答案...... 错误仍然显示!
See screenshot

编辑2 (测试PATH环境变量):
See screenshot 仍然会出现相同的错误(即使以管理员身份打开git-cmd.exe或git-bash.exe)。

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

编辑4
Bennie将他的机器从Windows 8.1升级到10后,问题已经解决。我们现在可以简单地断定操作系统已损坏。

1 个答案:

答案 0 :(得分:12)

每当一个GUI(这里是一个带有Git集成的VS)走出标称路径(这里不能立即执行git push)时,请恢复到git命令行界面。

在你的情况下,伯尼需要一个git pull --rebase

打开一个git bash,并做(如伯尼)

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

注意,git pull --rebase 可能即将推出Visual Studio(关注@gitforvs):

g4vs

但是没有官方的话。

关于" Couldn't open /dev/null (or dup failed)",看看" Getting errors when using GitHub for Windows"可以提供帮助(问题null device)。

如果错误仍然存​​在,例如在git-for-windows/git issue 583中,重新安装Windows仍然是摆脱这种困境的最可靠方法。

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

相关问题