bal*_*nza 21 c# versioning git workflow visual-studio
我通常使用Git进行版本控制.在我的团队中,我们并行工作,我们经常将代码提交到应用程序中.一切都很好但是Visual Studio的解决方案和项目文件.我们找到了两种方法:
两种方式都有利弊,但基本上我们每次从中央回购中获利都会挣扎.这里有一些我们发现的备用问题:(在parentesis中,参考上面的列表)
.csproj文件(2)等等.我可以使用适当的工作流程吗?
Von*_*onC 17
提交.sln和.csproj文件通常是最佳实践(如本答案中所述),但合并需要一些注意.
请参阅" 为什么我的.csproj文件在发生后会被弄乱git rebase? ".
(见下文)*.csproj -text merge=union
*.sln -text merge=unionv
或者您可以在.csproj本地推文中放弃并重新生成它们.
忽略这些csproj文件的另一个原因是它们是否被重新生成,如在此上下文中
当与策略一起使用时,yellowblood警告(在评论中)与csproj文件的严重冲突问题merge=union.
这与文章" 合并csproj文件中的冲突 "相呼应.
这就是为什么VS IDE应该支持项目文件中的文件模式的建议(为了在没有.csproj添加.cs适合该模式的新文件的情况下不修改文件).
有人建议,如果Visual Studio首先对其元素进行排序,这将有助于缓解问题.
这有助于减少由Visual Studio明显的非确定性元素引起的偶然冲突.
但它并没有使合并冲突的问题消失.
小智 6
在我们的项目中,我们将其检查为版本控制.我们.gitignore从github和一个简单的.gitattributes文件开始:
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
Run Code Online (Sandbox Code Playgroud)
这是因为union合并策略实际上对这些文件是危险的,请参阅csproj文件中的合并冲突,了解为什么这并不总是安全且可能不是您想要的.
您通常每次都会遇到合并冲突,但它们在Visual Studio中很容易处理.一个示例案例是向解决方案添加一个新的空项目并提交它,然后让多个团队成员向项目添加不同的文件.
从理论上讲,您可以定义一个自定义合并驱动程序来更好地处理xml合并,但我还没有看到其他任何人完成此操作.