git - 如何在 git 中处理 .csproj

标签 git visual-studio visual-studio-2015

我们正在使用 Visual Studio 2015 和 git 与几个人一起处理同一个项目。这工作得相当好,期待 .csproj 文件(项目文件)。每次向项目添加新文件时,.csproj 文件都会自动更改。因此,如果两个(或更多)人将文件添加到他们的本地版本,则需要最后一个提交的人进行 merge 。

有没有办法避免这种情况?

编辑:我可以获取,但不能 pull 或提交。如果我尝试 pull ,Visual Studio Git 想要将远程 .csproj 文件与我的本地版本 merge 。但是,它不能自动执行此操作,我为协助它所做的每一次尝试都会导致无法正常运行的 .csproj 文件。

最佳答案

Visual Studio 创建的 .csproj 文件是 XML 数据。 Git 对 XML 一无所知;它试图将这些 merge 为普通文本文件。结果很少是有效的 XML,更不会是任何类似于函数式的东西。

默认情况下,当 Git 无法 merge 这些 XML 文件时,您通常会遇到 merge 冲突:Git 将停止并让您修复困惑。由您来做对。 VS 是否提供任何工具来提供帮助,我不知道(我避免使用 Windows)。另见 this description of the problem (此链接也在链接问题的答案中,但我认为我应该将其作为直接链接包含在此处)。

有些人尝试使用 union merge 来完全自动化地 merge 这些 XML 文件,这样就没有 Git 冲突。这不是一个好主意。参见 VS 2013 C# and Git: .csproj files don't merge upon pulling了解详情。

关于git - 如何在 git 中处理 .csproj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42952462/

相关文章:

git - 设置 git 以要求 ssh key 文件

windows - 如何在 Windows 上设置 git?

Git merge diff3 样式需要说明

c# - Visual Studio 项目备份

c++ - 使用 Contour Area-OpenCV 时的断言错误

git - 确定文件在git中的哪个提交进入master分支

c# - Selenium WebDriver C# 测试用例无意中运行了两次

visual-studio - 尝试制作 Windows 安装程序包时 Visual Studio 的奇怪行为

visual-studio - Visual Studio 11 和处理 msvcr110.dll

visual-studio - 如何跳转到 Visual Studio 中的右括号?