我想要的
我在Windows中工作,我的项目是asp.net mvc
我有两个分支.Test和Master。
在两个分支,我有config.cs
每个分支都有自己的带有不同数据的config.cs。
我想要config.cs文件,不要包含在合并中。
我的目录
-。git
-.vs
-MyProject
--config.cs
-.gitattributes.txt
我的尝试
我发现此链接:
git-scm.com
谁表示使用.gitattributes.txt
我将此行写入.gitattributes.txt
config.cs merge=ours
并运行以下行:
git config --global merge.ours.driver true
但是不工作。
当我将Test分支合并到Master分支时,Test的config.cs将覆盖Master的config.cs。
答案 0 :(得分:0)
由于您不想合并该文件,因此最好不要完全对其进行版本控制,而生成。
那一代人将使用content filter driver通过 .gitattributes
declaration 。
再次:
config.cs
(实际上,请先通过git rm config.cs
删除它,然后再提交)config.cs.tpl
,以及两个文件,每个文件具有每个环境的所有可能值(Test
和master
,因此config.cs.test
和{ {1}}。(来自“ Customizing Git - Git Attributes”的图像,来自“ Pro Git book”的图像)
生成的实际文件仍然被config.cs.master
忽略:您的实际工作树不会“脏”。
.gitignore
脚本:
smudge
的分支)branch=$(git rev-parse --symbolic --abbrev-ref HEAD)
期间应用smudge
脚本的模板,选择正确的值文件并生成正确的文件。这样,您可以在开发时随意修改git checkout
值文件:config.cs.test
文件(未版本化)将根据这些值生成。
但是在config.cs
中,对同一存储库的检出将使用master
(版本文件)值触发主config.cs
文件的生成。