【发布时间】:2016-08-07 10:27:59
【问题描述】:
我很难从origin 拉取数据。我不断得到:
“无法拉取,因为有未提交的更改。在再次拉取之前提交或撤消您的更改。有关详细信息,请参阅输出窗口。”
这也适用于切换分支。我收到了类似的消息,但这并不总是发生。
我正在使用 Visual Studio 2015 Update 1 和 Visual Studio Team Services Git。在我的机器上,我有一个本地 master 分支和开发分支。每次我切换到master 然后我拉动我都会收到错误消息。我采取了 stash 和 drop stash(命令行)的方式,有时我使用 TortoiseGit 进行拉取,它可以工作。
奇怪的是,即使我尝试使用 TortoiseGit 还原(在未提交的文件上),它也显示它已成功还原(我已经尝试过 Visual Studio 撤消,没有任何反应)。再次尝试拉动,仍然是同样的问题。未提交的文件会在那里,有时当我执行git status 时,它会说没有什么可提交的。
请注意:即使在从分支切换到 master 之后也会发生这种情况。在这种情况下,不可能有未提交的更改,因为我一开始就无法切换。
我还是 Git 新手,但我想知道是否有更好的方法来解决这个问题,因为我想使用一个环境而不是为每个任务在不同环境之间切换;在 Visual Studio 中做所有事情对我来说更容易。我已经阅读了:
TFS/GIT in VS Cannot switch to master because there are uncommitted changes
更新
似乎这个问题与行尾有关。
通过git diff -R 可以看到已经添加了一个行尾“^M”,它是不同的。删除 gitattributes 中的 * text=auto(然后检查更改)并将其重新打开,以便 gitattributes 不会发出需要提交的自身更改的信号似乎有帮助,不会有任何更改。
【问题讨论】:
-
我重新启动了 Visual Studio 几次,然后我能够拉出将我带到合并冲突屏幕的更改。
标签: visual-studio-2015 azure-devops git-pull git-checkout git-revert