如何防止1个文件在分支之间切换

时间:2016-07-28 13:50:32

标签: git

我的本​​地计算机上有分支机构和测试版。

我大部分时间都是在测试版上工作,当它工作正常时我就会掌握,但是我有这个config.php文件设置了debug=true,这是我在进行测试时所需要的。< / p>

config.php

有没有办法让这个config.php文件在测试版上保持不同?

如果有时我想改变内部的东西,我必须在大师那里做,所以我可以推送到现场版。

感谢。

4 个答案:

答案 0 :(得分:0)

将该文件包含在测试分支的git ignore文件中

请按照以下步骤操作

  1. 在.gitignore文件中添加config.php

  2. 一旦使用git init初始化git存储库,就需要运行上面的步骤假设您最初没有将文件添加到.gitignore并且git当前正在跟踪您的文件(如您的情况)使用以下命令让git停止跟踪你的文件

    git rm --cached config.php

  3. 3.现在当你尝试添加这个文件时,它会抛出“文件被忽略的错误。如果你还想添加它,请使用-f选项和git add”。所以在执行git add *

    时请忽略此警告

    4.即使您将分支与主(或任何其他分支)合并,您也不会看到此更改,即文件的分支副本被保留

    希望这会有所帮助

答案 1 :(得分:0)

也许比你想要的工作更多,但是你可以编写一个提交钩子来查找在master上更改的文件并拒绝它,如果你看到这个文件带有你不想要的更改。见https://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy

答案 2 :(得分:0)

您应该能够停止跟踪文件的更改:

git update-index --skip-worktree config.php

您可以通过以下方式恢复跟踪更改:

git update-index --no-skip-worktree config.php

答案 3 :(得分:0)

您的软件可以让您在站点配置文件中设置debug=true,该文件不存在于存储库中且不受软件更新的影响(例如您的自己的开发和测试周期。)

config.php中的送货配置应仅提供默认值,这些值会被用户的站点配置文件覆盖。文件中应该有一个警告,不要将它用于本地设置,因为它会在每次升级时被破坏,而是创建本地文件。

然后,如果默认配置文件需要在repo中的不同分支上具有不同的内容,只需让它在不同的分支上具有不同的内容,就像任何代码,文档或任何其他工件一样。

安装过程可能会很好地触摸扫描站点配置文件并报告问题,例如对不再存在的变量的引用,或者其名称或行为已更改,因为这些情况会无声地破坏用户的配置,效果。