在合并时,会自动忽略某些更改

时间:2015-10-14 14:19:09

标签: c# .net git merge

方案:
对于每个分支,我使用不同的开发数据库。原因是模式可能不同,具体取决于在分支上完成的工作 这很简单,我只需更改app.config中的连接字符串 但是,这有一个问题,即当我执行合并时,这些更改(在提交时)会合并回父分支,从而有效地覆盖该父分支的app.config。 尽管如此,我希望在我的存储库中更改app.config,这样我只需检查一个分支并拥有正确的app.config。因此,git update-index --assume-unchanged不是解决方案。

2 个答案:

答案 0 :(得分:0)

此问题的解决方案是.gitignore。主机特定设置的环境不应与源共享存储库。标准方法是将app.properties添加到.gitignore并永不提交;而是将app.properties.templateapp.properties设置在特定环境中,或app.properties.default从中读取默认值。

答案 1 :(得分:0)

我有一个解决方案,但它不是自动的。部分原因可能是因为git而且因为忽略了这样的完整文件并不是正确的方法 - 如果你对app.config进行了一些其他你想要合并的更改呢?

首先让我看看我是否正确理解了您的问题。你在一个分支上开发了一些功能,当它完成时会被合并到其他一些" main"科。在进行此开发时,您会进行一些临时更改,这些更改在完成时不应包括在内。具体来说,你在app.config中提到数据库连接字符串,但在一般情况下,它可能是额外的日志记录,跳过调用某些函数等。 您希望将所有内容都签入并存储在git中,以便在没有签入修改过的文件的情况下没有松散的结尾。

假设我的理解是正确的,这就是我如何处理这个:同时 开发我只是添加一个给定的前缀和/或后缀(说Y) 对于那些不应该合并的提交的提交消息, 然后在完成最终合并之前删除那些提交。

所以当你完成看起来像

时,你最终会得到一个提交历史记录
====

删除那些临时更改是微不足道的(这可能是自动化的)。你必须稍微改变你的工作流程,但这些好处绝对值得。

您还可以看到this answer我之前描述过相同解决方案的更多详情和屏幕截图。

相关问题