如何让Visual Studio在git下显示合并冲突?

时间:2016-09-01 23:38:36

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

我正在使用Visual Studio 2015 Pro并使用Gi​​t repo。假设我做了拉动或应用隐藏的更改或做了一些导致我的分支发生冲突的事情。例如,在这种情况下,我只是应用了一个存储:

enter image description here

正如您所看到的,我有一些更改,但Web.config存在冲突。为什么始终存在冲突的XML文件?

现在,我进入Visual Studio并转到团队资源管理器 - >更改

enter image description here

在这里,我看到了我的分阶段更改,但有未分阶段的更改。我想知道为什么Web.config没有显示在这里,所以我可以解决冲突。

两件事:

  1. 相信如果我使用Visual Studio执行 Pull ,它会检测到然后运行合并工具的冲突。我还没有尝试过,但我知道它对TFS有用。但是,我想知道我是否可以从命令行使用 git pull ,然后使用Visual Studio来解决冲突。
  2. git config --global merge.tool已经vsdiffmerge,所以如果我从命令行运行git mergetool,它将然后使用Visual Studio进行合并。但是,这样做会产生一个全新的Visual Studio实例,这个实例很慢而且很烦人,并且不允许我在项目的其余部分工作。
  3. 任何人对此都有任何见解?谢谢!

2 个答案:

答案 0 :(得分:0)

在Visual Studio Professional 2017 15.7.4中,更改窗口似乎显示了冲突。

enter image description here

设置:

/mnt/c/git/ConsoleApp1>git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   ConsoleApp1/Class1.cs
        modified:   ConsoleApp1/Program.cs

/mnt/c/git/ConsoleApp1>git stash apply
Auto-merging ConsoleApp1/Program.cs
CONFLICT (content): Merge conflict in ConsoleApp1/Program.cs
/mnt/c/git/ConsoleApp1>git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        modified:   ConsoleApp1/Class1.cs

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

        both modified:      ConsoleApp1/Program.cs

/mnt/c/git/ConsoleApp1>

有颜色:

enter image description here

答案 1 :(得分:0)

在 Visual Studio 中遇到类似问题

<块引用>

合并已完成,但在 '' 存储库中存在冲突。解决 冲突并提交结果。

我尝试了与上一个答案相同的方法,但在 Visual Studio Professional 2019 版本 16.8.4+ 中删除了团队资源管理器。我遇到了与未显示合并冲突相同的麻烦,发现您需要在 Git Changes 窗口中提交最新更改(无需推送),然后然后尝试合并导致的更改冲突。此时出现了未合并的更改。

TL;VS2019 的 DR

  1. 提交更改
  2. 合并
  3. 出现未合并的更改